class type controller =The controller is the object in the Netplex master process/thread that manages the containers, logging, and service definitions
method ptype :
method sys_id :
method controller_config :
method services :
(socket_service * socket_controller *
method add_service :
socket_service -> workload_manager -> unit
method add_message_receiver :
ctrl_message_receiver -> unit
namemethod 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
post_add_hook of the processor.
method add_admin :
(Rpc_server.t -> unit) -> unit
add_admin setup: Allows to bind another RPC program to the admin socket. The function
setupwill be called whenever a connection to the admin socket is established, and this function can call
Rpc_server.bindto bind another RPC program. By default, only the
Admininterface is available as described in
Note that this RPC server runs in the scope of the controller! No
additional process or thread is created.
method logger :
method event_system :
send_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.
send_message destination msgname msgargs: Sends an admin message to
send_message for the notification guarantees.
method register_lever :
(controller -> encap -> encap) ->
let id = register_lever f: It is possible to register a function
fin the controller, and run it over the internal RPC interface from any container. These functions are called levers. See
activate_leverbelow. See also
Netplex_cenv.Make_leverfor a convenient way to create and use levers.
method containers :