Plasma GitLab Archive
Projects Blog Knowledge

sig
  type encap = Netplex_encap.encap
  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
      | `Encap of Netplex_types.encap
      | `Float of float
      | `Int of int
      | `String of string ]
  type level =
      [ `Alert | `Crit | `Debug | `Emerg | `Err | `Info | `Notice | `Warning ]
  class type logger =
    object
      method log :
        component:string ->
        level:Netplex_types.level -> message:string -> unit
      method log_subch :
        component:string ->
        subchannel:string ->
        level:Netplex_types.level -> message:string -> unit
      method reopen : unit -> unit
    end
  type parallelization_type =
      [ `Controller_attached | `Multi_processing | `Multi_threading ]
  type thread_sys_id = [ `Process of int | `Thread of int ]
  type socket_state = [ `Disabled | `Down | `Enabled | `Restarting of bool ]
  type container_id = < socket_service_name : string >
  type container_state =
      [ `Accepting of int * float
      | `Busy
      | `Shutting_down
      | `Starting of float ]
  type capacity =
      [ `Low_quality of int * bool
      | `Normal_quality of int * bool
      | `Unavailable ]
  type extended_address =
      [ `Container of
          string * string * string *
          [ `Any | `Process of int | `Thread of int ]
      | `Internal of string
      | `Socket of Unix.sockaddr
      | `Socket_file of string
      | `W32_pipe of string
      | `W32_pipe_file of string ]
  type (_, _) eq = Equal : ('a, 'a) Netplex_types.eq | Not_equal
  type _ polysocket_kind =
      Txdr : Netxdr.xdr_value Netplex_types.polysocket_kind
    | Tstring : string Netplex_types.polysocket_kind
  type 'a kind_check = {
    kind_check :
      'b. 'Netplex_types.polysocket_kind -> ('a, 'b) Netplex_types.eq;
  }
  type polysocket_kind_box =
      Polysocket_kind_box :
        'Netplex_types.polysocket_kind -> Netplex_types.polysocket_kind_box
  type polyserver_box =
      Polyserver_box : 'Netplex_types.polysocket_kind *
        'Netsys_polysocket.polyserver -> Netplex_types.polyserver_box
  type polyclient_box =
      Polyclient_box : 'Netplex_types.polysocket_kind *
        'Netsys_polysocket.polyclient -> Netplex_types.polyclient_box
  type extfd =
      OS_descr of Unix.file_descr
    | Poly_endpoint of Netxdr.xdr_value Netsys_polysocket.polyendpoint
  class type controller =
    object
      method activate_lever :
        int -> Netplex_types.encap -> Netplex_types.encap
      method add_admin : (Rpc_server.t -> unit) -> unit
      method add_message_receiver :
        Netplex_types.ctrl_message_receiver -> unit
      method add_plugin : Netplex_types.plugin -> unit
      method add_service :
        Netplex_types.socket_service ->
        Netplex_types.workload_manager -> unit
      method container_count : string -> int
      method containers : Netplex_types.container_id list
      method containers_for : string -> Netplex_types.container_id list
      method controller_config : Netplex_types.controller_config
      method event_system : Unixqueue.unix_event_system
      method free_resources : unit -> unit
      method logger : Netplex_types.logger
      method ptype : Netplex_types.parallelization_type
      method register_lever :
        (Netplex_types.controller ->
         Netplex_types.encap -> Netplex_types.encap) ->
        int
      method restart : unit -> unit
      method send_admin_message : string -> string -> string array -> unit
      method send_message : string -> string -> string array -> unit
      method services :
        (Netplex_types.socket_service * Netplex_types.socket_controller *
         Netplex_types.workload_manager)
        list
      method shutdown : unit -> unit
      method startup_directory : string
      method sys_id : Netplex_types.thread_sys_id
    end
  and controller_config =
    object
      method create_logger : Netplex_types.controller -> Netplex_types.logger
      method max_level : Netplex_types.level
      method set_max_level : Netplex_types.level -> unit
      method socket_directory : string
    end
  and socket_service =
    object
      method create_container :
        Netplex_types.parallelization_type ->
        Netplex_types.socket_service -> Netplex_types.container
      method internal_sockets : (string * Netplex_types.polyserver_box) list
      method name : string
      method on_add : Netplex_types.controller -> unit
      method processor : Netplex_types.processor
      method shutdown : unit -> unit
      method socket_service_config : Netplex_types.socket_service_config
      method sockets : (string * Unix.file_descr array) list
      method startup_directory : string
    end
  and socket_service_config =
    object
      method change_user_to : (int * int) option
      method conn_limit : int option
      method controller_config : Netplex_types.controller_config
      method gc_when_idle : bool
      method name : string
      method protocols : Netplex_types.protocol list
      method startup_timeout : float
    end
  and protocol =
    object
      method addresses : Netplex_types.extended_address array
      method configure_slave_socket : Unix.file_descr -> unit
      method local_chmod : int option
      method local_chown : (int * int) option
      method lstn_backlog : int
      method lstn_reuseaddr : bool
      method name : string
      method so_keepalive : bool
      method tcp_nodelay : bool
    end
  and socket_controller =
    object
      method container_state :
        (Netplex_types.container_id * string *
         Netplex_types.container_state * bool)
        list
      method disable : unit -> unit
      method enable : unit -> unit
      method restart : unit -> unit
      method shutdown : unit -> unit
      method start_containers : int -> int
      method state : Netplex_types.socket_state
      method stop_containers : Netplex_types.container_id list -> unit
    end
  and ctrl_message_receiver =
    object
      method name : string
      method receive_admin_message :
        Netplex_types.controller -> string -> string array -> unit
      method receive_message :
        Netplex_types.controller -> string -> string array -> unit
    end
  and processor_hooks =
    object
      method config_internal :
        (string * Netplex_types.polysocket_kind_box) list
      method container_event_system : unit -> Unixqueue.event_system
      method container_run : Unixqueue.event_system -> unit
      method global_exception_handler : exn -> bool
      method post_add_hook :
        Netplex_types.socket_service -> Netplex_types.controller -> unit
      method post_finish_hook :
        Netplex_types.socket_service ->
        Netplex_types.controller -> Netplex_types.container_id -> unit
      method post_rm_hook :
        Netplex_types.socket_service -> Netplex_types.controller -> unit
      method post_start_hook : Netplex_types.container -> unit
      method pre_finish_hook : Netplex_types.container -> unit
      method pre_start_hook :
        Netplex_types.socket_service ->
        Netplex_types.controller -> Netplex_types.container_id -> unit
      method process_internal :
        when_done:(unit -> unit) ->
        Netplex_types.container ->
        Netplex_types.polyserver_box -> string -> unit
      method receive_admin_message :
        Netplex_types.container -> string -> string array -> unit
      method receive_message :
        Netplex_types.container -> string -> string array -> unit
      method shutdown : unit -> unit
      method system_shutdown : unit -> unit
      method workload_hook : Netplex_types.container -> bool -> int -> unit
    end
  and processor =
    object
      method config_internal :
        (string * Netplex_types.polysocket_kind_box) list
      method container_event_system : unit -> Unixqueue.event_system
      method container_run : Unixqueue.event_system -> unit
      method global_exception_handler : exn -> bool
      method post_add_hook :
        Netplex_types.socket_service -> Netplex_types.controller -> unit
      method post_finish_hook :
        Netplex_types.socket_service ->
        Netplex_types.controller -> Netplex_types.container_id -> unit
      method post_rm_hook :
        Netplex_types.socket_service -> Netplex_types.controller -> unit
      method post_start_hook : Netplex_types.container -> unit
      method pre_finish_hook : Netplex_types.container -> unit
      method pre_start_hook :
        Netplex_types.socket_service ->
        Netplex_types.controller -> Netplex_types.container_id -> unit
      method process :
        when_done:(unit -> unit) ->
        Netplex_types.container -> Unix.file_descr -> string -> unit
      method process_internal :
        when_done:(unit -> unit) ->
        Netplex_types.container ->
        Netplex_types.polyserver_box -> string -> unit
      method receive_admin_message :
        Netplex_types.container -> string -> string array -> unit
      method receive_message :
        Netplex_types.container -> string -> string array -> unit
      method shutdown : unit -> unit
      method supported_ptypes : Netplex_types.parallelization_type list
      method system_shutdown : unit -> unit
      method workload_hook : Netplex_types.container -> bool -> int -> unit
    end
  and container =
    object
      method activate_lever :
        int -> Netplex_types.encap -> Netplex_types.encap
      method call_plugin :
        Netplex_types.plugin ->
        string -> Netxdr.xdr_value -> Netxdr.xdr_value
      method container_id : Netplex_types.container_id
      method event_system : Unixqueue.unix_event_system
      method log : Netplex_types.level -> string -> unit
      method log_subch : string -> Netplex_types.level -> string -> unit
      method lookup : string -> string -> string option
      method lookup_container_sockets : string -> string -> string array
      method n_connections : int
      method n_total : int
      method owned_container_sockets : (string * string) list
      method ptype : Netplex_types.parallelization_type
      method send_message : string -> string -> string array -> unit
      method set_var : string -> Netplex_types.param_value_or_any -> unit
      method shutdown : unit -> unit
      method socket_service : Netplex_types.socket_service
      method socket_service_name : string
      method start : Netplex_types.extfd -> Netplex_types.extfd -> unit
      method startup_directory : string
      method system : Rpc_client.t
      method system_monitor : Uq_mt.monitor
      method update_detail : Unix.file_descr -> string -> unit
      method var : string -> Netplex_types.param_value_or_any
    end
  and workload_manager =
    object
      method adjust :
        Netplex_types.socket_service ->
        Netplex_types.socket_controller -> unit
      method capacity :
        Netplex_types.container_id ->
        Netplex_types.container_state -> Netplex_types.capacity
      method hello : Netplex_types.controller -> unit
      method shutdown : unit -> unit
    end
  and plugin =
    object
      method ctrl_added : Netplex_types.controller -> unit
      method ctrl_container_finished :
        Netplex_types.controller ->
        Netplex_types.container_id -> bool -> unit
      method ctrl_receive_call :
        Netplex_types.controller ->
        Netplex_types.container_id ->
        string ->
        Netxdr.xdr_value -> (Netxdr.xdr_value option -> unit) -> unit
      method ctrl_unplugged : Netplex_types.controller -> unit
      method program : Rpc_program.t
      method required : Netplex_types.plugin list
    end
  class type par_thread =
    object
      method info_string : string
      method parallelizer : Netplex_types.parallelizer
      method ptype : Netplex_types.parallelization_type
      method sys_id : Netplex_types.thread_sys_id
      method watch_shutdown : Unixqueue.unix_event_system -> unit
    end
  and parallelizer =
    object
      method create_mem_mutex : unit -> (unit -> unit) * (unit -> unit)
      method current_sys_id : [ `Process of int | `Thread of int ]
      method init : unit -> unit
      method ptype : Netplex_types.parallelization_type
      method start_thread :
        (Netplex_types.par_thread -> unit) ->
        Unix.file_descr list ->
        Unix.file_descr list ->
        string -> Netplex_types.logger -> Netplex_types.par_thread
    end
  type config_tree =
      [ `Parameter of string * Netplex_types.param_value
      | `Section of string * Netplex_types.config_tree list ]
  and address = <  >
  class type config_file =
    object
      method bool_param : Netplex_types.address -> bool
      method filename : string
      method float_param : Netplex_types.address -> float
      method int_param : Netplex_types.address -> int
      method print : Netplex_types.address -> string
      method resolve_parameter :
        Netplex_types.address -> string -> Netplex_types.address
      method resolve_section :
        Netplex_types.address -> string -> Netplex_types.address list
      method restrict_parameters :
        Netplex_types.address -> string list -> unit
      method restrict_subsections :
        Netplex_types.address -> string list -> unit
      method root_addr : Netplex_types.address
      method root_name : string
      method string_param : Netplex_types.address -> string
      method tree : Netplex_types.config_tree
    end
  class type processor_factory =
    object
      method create_processor :
        Netplex_types.controller_config ->
        Netplex_types.config_file ->
        Netplex_types.address -> Netplex_types.processor
      method name : string
    end
  class type workload_manager_factory =
    object
      method create_workload_manager :
        Netplex_types.controller_config ->
        Netplex_types.config_file ->
        Netplex_types.address -> Netplex_types.workload_manager
      method name : string
    end
  class type logger_factory =
    object
      method create_logger :
        Netplex_types.config_file ->
        Netplex_types.address ->
        Netplex_types.controller -> Netplex_types.logger
      method name : string
    end
  class type netplex_config =
    object
      method controller_config : Netplex_types.controller_config
      method ptype : Netplex_types.parallelization_type
      method services :
        (Netplex_types.socket_service_config *
         (Netplex_types.address * Netplex_types.processor_factory) *
         (Netplex_types.address * Netplex_types.workload_manager_factory))
        list
    end
end
This web site is published by Informatikbüro Gerd Stolpmann
Powered by Caml