# Module Netplex_types

    module Netplex_types: sig .. end

Types for `Netplex`

    type param_value = [ `Bool of bool | `Float of float | `Int of int | `String of string ]

    type param_value_or_any = [ `Any of exn
           | `Bool of bool
           | `Float of float
           | `Int of int
           | `String of string ]

    type level = [ `Alert | `Crit | `Debug | `Emerg | `Err | `Info | `Notice | `Warning ]

    class type logger = object .. end

    type parallelization_type = [ `Controller_attached | `Multi_processing | `Multi_threading ]

Type of parallelization:

- ``Multi_processing` on a single host
- ``Multi_threading` on a single host
- ``Controller_attached` means that the service runs within the controller. This is (for now) only allowed for controller-internal services.

    type socket_state = [ `Disabled | `Down | `Enabled | `Restarting of bool ]

The state of a socket:

- ``Enabled`: The controller allows containers to accept connections. Note that this does not necessarily means that there such containers.
- ``Disabled`: It is not allowed to accept new connections. The socket is kept open, however.
- ``Restarting b`: The containers are being restarted. The boolean argument says whether the socket will be enabled after that.
- ``Down`: The socket is down/closed

    type container_id = <  >

Identifies a container

    type container_state = [ `Accepting of int * float | `Busy | `Shutting_down | `Starting of float ]

The container state for workload management:

- ``Accepting(n,t)`: The container is accepting further connections. It currently processes `n` connections. The last connection was accepted at time `t` (seconds since the epoch).
- ``Busy`: The container does not accept connections
- ``Starting t`: The container was started at time `t` and is not yet ready.
- ``Shutting_down`: The container is being shutted down.

    type capacity = [ `Low_quality of int | `Normal_quality of int | `Unavailable ]

How many connections a container can accept in addition to the existing connections:

- ``Normal_quality n`: It can accept n connections with normal service quality, `n > 0`
- ``Low_quality n`: It can accept n connections with low service quality (e.g. because it is already quite loaded), `n > 0`
- ``Unavailable`: No capacity free

    class type controller = object .. end

    class type controller_config = object .. end

    class type socket_service = object .. end

    class type socket_service_config = object .. end

    class type protocol = object .. end

    class type socket_controller = object .. end

    class type processor_hooks = object .. end

    class type processor = object .. end

    class type container = object .. end

    class type workload_manager = object .. end

    class type par_thread = object .. end

    class type parallelizer = object .. end

    type config_tree = [ `Parameter of address * string * param_value
           | `Section of address * string * config_tree list ]

    type address = <  >

    class type config_file = object .. end

    class type processor_factory = object .. end

    class type workload_manager_factory = object .. end

    class type logger_factory = object .. end

    class type netplex_config = object .. end