class type controller =object..end
method ptype : parallelization_typemethod sys_id : thread_sys_idmethod controller_config : controller_configmethod services : (socket_service * socket_controller *
        workload_manager)
       listmethod add_service : socket_service -> workload_manager -> unitmethod add_message_receiver : ctrl_message_receiver -> unitname method
        must return the name.method add_plugin : plugin -> unit
        Plugins must have been added before the first container is started.
        This is not checked, however. You are on the safe side when the
        plugin is added in the create_processor factory method, or in
        the post_add_hook of the processor.
method add_admin : (Rpc_server.t -> unit) -> unitadd_admin setup: Allows to bind another RPC program to the admin
 socket. The function setup will be called whenever a connection
 to the admin socket is established, and this function can call
 Rpc_server.bind to bind another RPC program. By default, only
 the Admin interface is available as described in netplex_ctrl.x.
 Note that this RPC server runs in the scope of the controller! No
 additional process or thread is created.
method logger : loggermethod event_system : Unixqueue.unix_event_systemmethod restart : unit -> unitmethod shutdown : unit -> unitmethod send_message : string -> string -> string array -> unitsend_message destination msgname msgargs: Sends a message to
        destination. When this method returns, it is only ensured that
        the receivers registered in the controller have been notified about
        the message (so it can be made sure that any newly forked containers
        know about the message). It is not guaranteed that the existing
        containers are notified when this method returns. This can (and
        usually will) happen at any time in the future.method send_admin_message : string -> string -> string array -> unitsend_message destination msgname msgargs: Sends an admin message to
        destination.
        See send_message for the notification guarantees.
method register_lever : (controller -> encap -> encap) ->
       intlet id = register_lever f: It is possible to register a function f
        in the controller, and run it over the internal RPC interface from
        any container. These functions are called levers. See
        activate_lever below. See also
        Netplex_cenv.Make_lever for a convenient way to create
        and use levers.method activate_lever : int -> encap -> encapmethod containers : container_id listmethod containers_for : string -> container_id listmethod container_count : string -> intmethod free_resources : unit -> unitmethod startup_directory : string