Plasma GitLab Archive
Projects Blog Knowledge

Class type Netplex_types.container

class type container = object .. end

Containers encapsulate the control flow of the service components. A container is run in a separate thread or process.

Thread safety: All methods except start can be called from any thread, and provide full thread safety.


method socket_service_name : string
method socket_service : socket_service
method container_id : container_id

Return the container ID

method ptype : parallelization_type

The parallelization type actually used for this container

method event_system : Unixqueue.unix_event_system

The event system the container uses

method start : extfd -> extfd -> unit

Internal Method. Called by the controller to start the container. It is the responsibility of the container to call the post_start_hook and the pre_finish_hook.

The file descriptors are endpoints of RPC connections to the controller. The first serves calls of the Control program, and the second serves calls of the System program.

When start returns the container will be terminated.

method shutdown : unit -> unit

Initiates a shutdown of the container.

method n_connections : int

The current number of connections

method n_total : int

The sum of all connections so far

method system : Rpc_client.t

An RPC client that can be used to send messages to the controller. Only available while start is running. It is bound to System.V1.

In multi-threaded programs access to system must be governed by system_monitor. See Uq_mt for details what this means.

method system_monitor : Uq_mt.monitor

The thread monitor protecting the system RPC client

method lookup : string -> string -> string option

lookup service_name protocol_name tries to find a Unix domain socket for the service and returns it.

method lookup_container_sockets : string -> string -> string array

lookup_container_sockets service_name protocol_name: returns the Unix Domain paths of all container sockets for this service and protocol. These are the sockets declared with address type "container" in the config file.

method owned_container_sockets : (string * string) list

List of pairs (protocol_name, path) of all container sockets of this container

method send_message : string -> string -> string array -> unit

send_message service_pattern msg_name msg_arguments: Sends a message to all services and message receivers matching service_pattern. The pattern may include the wildcard *.

See the Netplex_types.controller.send_message method for the notification guarantees.

method log : level -> string -> unit

Sends a log message to the controller.

method log_subch : string -> level -> string -> unit

Sends a log message to the controller. The first string is the subchannel

method update_detail : Unix.file_descr -> string -> unit

Update the detail string output for the netplex.connections admin message

method var : string -> param_value_or_any

Returns the value of a container variable or Not_found. Container variables can be used by the user of a container to store additional values in the container. These values exist once per thread/process.

method set_var : string -> param_value_or_any -> unit

Sets the value of a container variable

method call_plugin : plugin -> string -> Netxdr.xdr_value -> Netxdr.xdr_value

call_plugin p procname procarg: This method can be called from the container context to invoke the plugin p procedure procname. This means that the ctrl_receive_call of the same plugin is invoked in the controller context.

method activate_lever : int -> encap -> encap

Runs a lever function registered in the controller. The int argument identifies the lever. The encap argument is the parameter, and the returned exception is the result. See also Netplex_cenv.Make_lever for a convenient way to create and use levers.

method startup_directory : string

The current directory at Netplex startup time (same view as controller)

This web site is published by Informatikbüro Gerd Stolpmann
Powered by Caml