# Class type Netplex_types.controller

    class type controller = object .. end

    method ptype : parallelization_type

The actually effective parallelization type

    method controller_config : controller_config

    method services : (socket_service * socket_controller *
            workload_manager)
           list

The list of controlled services

    method add_service : socket_service -> workload_manager -> unit

Adds a new service. Containers for these services will be started soon. It is allowed to add several services with the same name (but it will be hard to distinguish them later).

    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

The logger

    method event_system : Unixqueue.unix_event_system

The event system used by the controller. It must not be used from a container.

    method restart : unit -> unit

Initiates a restart of all containers: All threads/processes are terminated and replaced by newly initialized ones.

    method shutdown : unit -> unit

Initiates a shutdown of all containers. It is no longer possible to add new services. When the shutdown has been completed, the controller will terminate itself.