# Class Netplex_kit.protocol_switch_factory

    class protocol_switch_factory : string -> (string * Netplex_types.processor_factory) list -> Netplex_types.processor_factory

`protocol_switch_factory name merge_list`: Merges the factories in `merge_list` to a single factory. Which factory is selected depends on the protocol.

For example:

              service {
                name = "...";
                protocol {
                   name = "A"; ...;
                }
                protocol {
                   name = "B"; ...;
                }
                processor {
                   type = "merged";
                   A {
                      ...
                   }
                   B {
                      ...
                   }
                }
              }

Here, two protocols `A` and `B` are defined, and there is a subsection in `processor` for each of the protocols configuring the used service. "merged" is the `name` of the merged factories.

For example, `A` could be an RPC interface, and `B` could be an HTTP interface providing the same service.

For every protocol in `merge_list` there must be a subsection in `processor` for the protocol. This subsection configures then the processor. It is not an error not to create sockets for a protocol in `merge_list`.