class type controller =object
..end
method ptype : parallelization_type
method sys_id : thread_sys_id
method controller_config : controller_config
method services : (socket_service * socket_controller *
workload_manager)
list
method add_service : socket_service -> workload_manager -> unit
method add_message_receiver : ctrl_message_receiver -> unit
name
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) -> unit
add_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 : logger
method event_system : Unixqueue.unix_event_system
method restart : unit -> unit
method shutdown : unit -> unit
method send_message : string -> string -> string array -> unit
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.method send_admin_message : string -> string -> string array -> unit
send_message destination msgname msgargs
: Sends an admin message to
destination
.
See send_message
for the notification guarantees.
method register_lever : (controller -> encap -> encap) ->
int
let 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 -> encap
method containers : container_id list
method containers_for : string -> container_id list
method container_count : string -> int
method free_resources : unit -> unit
method startup_directory : string