Plasma GitLab Archive
Projects Blog Knowledge

sig
  exception Closed_channel
  exception Broken_communication
  exception Watchdog_timeout
  exception Timeout
  exception Addressing_method_not_supported
  exception Cancelled
  type 't engine_state =
      [ `Aborted | `Done of '| `Error of exn | `Working of int ]
  type 't final_state = [ `Aborted | `Done of '| `Error of exn ]
  val string_of_state : 'Uq_engines.engine_state -> string
  class type ['t] engine =
    object
      method abort : unit -> unit
      method event_system : Unixqueue.event_system
      method request_notification : (unit -> bool) -> unit
      method state : 'Uq_engines.engine_state
    end
  class ['t] delegate_engine : '#Uq_engines.engine -> ['t] engine
  val when_state :
    ?is_done:('-> unit) ->
    ?is_error:(exn -> unit) ->
    ?is_aborted:(unit -> unit) ->
    ?is_progressing:(int -> unit) -> '#Uq_engines.engine -> unit
  class ['a] signal_engine :
    Unixqueue.event_system ->
    object
      method abort : unit -> unit
      method event_system : Unixqueue.event_system
      method request_notification : (unit -> bool) -> unit
      method signal : 'Uq_engines.final_state -> unit
      method state : 'a engine_state
    end
  val signal_engine :
    Unixqueue.event_system ->
    'Uq_engines.engine * ('Uq_engines.final_state -> unit)
  class ['a, 'b] map_engine :
    map_done:('-> 'Uq_engines.engine_state) ->
    ?map_error:(exn -> 'Uq_engines.engine_state) ->
    ?map_aborted:(unit -> 'Uq_engines.engine_state) ->
    ?propagate_working:bool -> '#Uq_engines.engine -> ['b] engine
  val map_engine :
    map_done:('-> 'Uq_engines.engine_state) ->
    ?map_error:(exn -> 'Uq_engines.engine_state) ->
    ?map_aborted:(unit -> 'Uq_engines.engine_state) ->
    ?propagate_working:bool -> '#Uq_engines.engine -> 'Uq_engines.engine
  class ['a, 'b] fmap_engine :
    '#Uq_engines.engine ->
    ('Uq_engines.final_state -> 'Uq_engines.final_state) -> ['b] engine
  val fmap_engine :
    '#Uq_engines.engine ->
    ('Uq_engines.final_state -> 'Uq_engines.final_state) ->
    'Uq_engines.engine
  class ['a] meta_engine :
    '#Uq_engines.engine -> ['Uq_engines.final_state] engine
  val meta_engine :
    '#Uq_engines.engine -> 'Uq_engines.final_state Uq_engines.engine
  class ['t] epsilon_engine :
    'Uq_engines.engine_state -> Unixqueue.event_system -> ['t] engine
  val epsilon_engine :
    'Uq_engines.engine_state ->
    Unixqueue.event_system -> 'Uq_engines.engine
  class ['a, 'b] seq_engine :
    '#Uq_engines.engine -> ('-> '#Uq_engines.engine) -> ['b] engine
  val seq_engine :
    '#Uq_engines.engine ->
    ('-> '#Uq_engines.engine) -> 'Uq_engines.engine
  class ['a, 'b] qseq_engine :
    '#Uq_engines.engine -> ('-> '#Uq_engines.engine) -> ['b] engine
  val qseq_engine :
    '#Uq_engines.engine ->
    ('-> '#Uq_engines.engine) -> 'Uq_engines.engine
  class ['a] stream_seq_engine :
    '->
    ('-> '#Uq_engines.engine) Stream.t ->
    Unixqueue.event_system -> ['a] engine
  val stream_seq_engine :
    '->
    ('-> '#Uq_engines.engine) Stream.t ->
    Unixqueue.event_system -> 'Uq_engines.engine
  class ['a, 'b] sync_engine :
    '#Uq_engines.engine -> '#Uq_engines.engine -> ['a * 'b] engine
  val sync_engine :
    '#Uq_engines.engine ->
    '#Uq_engines.engine -> ('a * 'b) Uq_engines.engine
  class ['a, 'b] msync_engine :
    '#Uq_engines.engine list ->
    ('-> '-> 'b) -> '-> Unixqueue.event_system -> ['b] engine
  val msync_engine :
    '#Uq_engines.engine list ->
    ('-> '-> 'b) -> '-> Unixqueue.event_system -> 'Uq_engines.engine
  class ['a] delay_engine :
    float ->
    (unit -> '#Uq_engines.engine) -> Unixqueue.event_system -> ['a] engine
  val delay_engine :
    float ->
    (unit -> '#Uq_engines.engine) ->
    Unixqueue.event_system -> 'Uq_engines.engine
  class ['a] timeout_engine :
    float -> exn -> 'Uq_engines.engine -> ['a] engine
  val timeout_engine :
    float -> exn -> 'Uq_engines.engine -> 'Uq_engines.engine
  class watchdog : float -> '#Uq_engines.engine -> [unit] engine
  val watchdog : float -> '#Uq_engines.engine -> unit Uq_engines.engine
  class type ['a] serializer_t =
    object
      method serialized :
        (Unixqueue.event_system -> 'Uq_engines.engine) ->
        'Uq_engines.engine
    end
  class ['a] serializer : Unixqueue.event_system -> ['a] serializer_t
  val serializer : Unixqueue.event_system -> 'Uq_engines.serializer_t
  class type ['a] prioritizer_t =
    object
      method prioritized :
        (Unixqueue.event_system -> 'Uq_engines.engine) ->
        int -> 'Uq_engines.engine
    end
  class ['a] prioritizer : Unixqueue.event_system -> ['a] prioritizer_t
  val prioritizer : Unixqueue.event_system -> 'Uq_engines.prioritizer_t
  class type ['a] cache_t =
    object
      method abort : unit -> unit
      method get_engine : unit -> 'Uq_engines.engine
      method get_opt : unit -> 'a option
      method invalidate : unit -> unit
      method put : '-> unit
    end
  class ['a] cache :
    (Unixqueue.event_system -> 'Uq_engines.engine) ->
    Unixqueue.event_system -> ['a] cache_t
  val cache :
    (Unixqueue.event_system -> 'Uq_engines.engine) ->
    Unixqueue.event_system -> 'Uq_engines.cache_t
  class ['t] engine_mixin :
    'Uq_engines.engine_state ->
    Unixqueue.event_system ->
    object
      method event_system : Unixqueue.event_system
      method private notify : unit -> unit
      method request_notification : (unit -> bool) -> unit
      method private set_state : 'Uq_engines.engine_state -> unit
      method state : 'Uq_engines.engine_state
    end
  module Operators :
    sig
      val ( ++ ) :
        '#Uq_engines.engine ->
        ('-> '#Uq_engines.engine) -> 'Uq_engines.engine
      val ( >> ) :
        '#Uq_engines.engine ->
        ('Uq_engines.final_state -> 'Uq_engines.final_state) ->
        'Uq_engines.engine
      val eps_e :
        'Uq_engines.engine_state ->
        Unixqueue.event_system -> 'Uq_engines.engine
    end
  class poll_engine :
    ?extra_match:(exn -> bool) ->
    (Unixqueue.operation * float) list ->
    Unixqueue.event_system ->
    object
      method abort : unit -> unit
      method event_system : Unixqueue.event_system
      method group : Unixqueue.group
      method request_notification : (unit -> bool) -> unit
      method restart : unit -> unit
      method state : Unixqueue.event engine_state
    end
  class ['a] input_engine :
    (Unix.file_descr -> 'a) ->
    Unix.file_descr -> float -> Unixqueue.event_system -> ['a] engine
  class ['a] output_engine :
    (Unix.file_descr -> 'a) ->
    Unix.file_descr -> float -> Unixqueue.event_system -> ['a] engine
  class poll_process_engine :
    ?period:float ->
    pid:int -> Unixqueue.event_system -> [Unix.process_status] engine
  class type async_out_channel =
    object
      method can_output : bool
      method close_out : unit -> unit
      method flush : unit -> unit
      method output : string -> int -> int -> int
      method pos_out : int
      method request_notification : (unit -> bool) -> unit
    end
  class type async_in_channel =
    object
      method can_input : bool
      method close_in : unit -> unit
      method input : string -> int -> int -> int
      method pos_in : int
      method request_notification : (unit -> bool) -> unit
    end
  class type async_out_channel_engine =
    object
      method abort : unit -> unit
      method can_output : bool
      method close_out : unit -> unit
      method event_system : Unixqueue.event_system
      method flush : unit -> unit
      method output : string -> int -> int -> int
      method pos_out : int
      method request_notification : (unit -> bool) -> unit
      method state : unit engine_state
    end
  type copy_task =
      [ `Bidirectional of Unix.file_descr * Unix.file_descr
      | `Tridirectional of
          Unix.file_descr * Unix.file_descr * Unix.file_descr
      | `Uni_socket of Unix.file_descr * Unix.file_descr
      | `Unidirectional of Unix.file_descr * Unix.file_descr ]
  class type async_in_channel_engine =
    object
      method abort : unit -> unit
      method can_input : bool
      method close_in : unit -> unit
      method event_system : Unixqueue.event_system
      method input : string -> int -> int -> int
      method pos_in : int
      method request_notification : (unit -> bool) -> unit
      method state : unit engine_state
    end
  class type multiplex_controller =
    object
      method alive : bool
      method cancel_reading : unit -> unit
      method cancel_shutting_down : unit -> unit
      method cancel_writing : unit -> unit
      method event_system : Unixqueue.event_system
      method inactivate : unit -> unit
      method mem_supported : bool
      method read_eof : bool
      method reading : bool
      method shutting_down : bool
      method start_mem_reading :
        ?peek:(unit -> unit) ->
        when_done:(exn option -> int -> unit) ->
        Netsys_mem.memory -> int -> int -> unit
      method start_mem_writing :
        when_done:(exn option -> int -> unit) ->
        Netsys_mem.memory -> int -> int -> unit
      method start_reading :
        ?peek:(unit -> unit) ->
        when_done:(exn option -> int -> unit) -> string -> int -> int -> unit
      method start_shutting_down :
        ?linger:float -> when_done:(exn option -> unit) -> unit -> unit
      method start_writing :
        when_done:(exn option -> int -> unit) -> string -> int -> int -> unit
      method start_writing_eof :
        when_done:(exn option -> unit) -> unit -> unit
      method supports_half_open_connection : bool
      method tls_session : (string * string) option
      method tls_session_props : Nettls_support.tls_session_props option
      method tls_stashed_endpoint : unit -> exn
      method writing : bool
      method wrote_eof : bool
    end
  exception Mem_not_supported
  class type datagram_multiplex_controller =
    object
      method alive : bool
      method cancel_reading : unit -> unit
      method cancel_shutting_down : unit -> unit
      method cancel_writing : unit -> unit
      method event_system : Unixqueue.event_system
      method inactivate : unit -> unit
      method mem_supported : bool
      method read_eof : bool
      method reading : bool
      method received_from : Unix.sockaddr
      method send_to : Unix.sockaddr -> unit
      method shutting_down : bool
      method start_mem_reading :
        ?peek:(unit -> unit) ->
        when_done:(exn option -> int -> unit) ->
        Netsys_mem.memory -> int -> int -> unit
      method start_mem_writing :
        when_done:(exn option -> int -> unit) ->
        Netsys_mem.memory -> int -> int -> unit
      method start_reading :
        ?peek:(unit -> unit) ->
        when_done:(exn option -> int -> unit) -> string -> int -> int -> unit
      method start_shutting_down :
        ?linger:float -> when_done:(exn option -> unit) -> unit -> unit
      method start_writing :
        when_done:(exn option -> int -> unit) -> string -> int -> int -> unit
      method start_writing_eof :
        when_done:(exn option -> unit) -> unit -> unit
      method supports_half_open_connection : bool
      method tls_session : (string * string) option
      method tls_session_props : Nettls_support.tls_session_props option
      method tls_stashed_endpoint : unit -> exn
      method writing : bool
      method wrote_eof : bool
    end
  type onshutdown_out_spec =
      [ `Action of
          Uq_engines.async_out_channel_engine ->
          Uq_engines.multiplex_controller ->
          unit Uq_engines.engine_state -> unit
      | `Ignore
      | `Initiate_shutdown ]
  type onshutdown_in_spec =
      [ `Action of
          Uq_engines.async_in_channel_engine ->
          Uq_engines.multiplex_controller ->
          unit Uq_engines.engine_state -> unit
      | `Ignore
      | `Initiate_shutdown ]
  type inetspec =
      [ `Sock_inet of Unix.socket_type * Unix.inet_addr * int
      | `Sock_inet_byname of Unix.socket_type * string * int ]
  type sockspec =
      [ `Sock_inet of Unix.socket_type * Unix.inet_addr * int
      | `Sock_inet_byname of Unix.socket_type * string * int
      | `Sock_unix of Unix.socket_type * string ]
  type connect_address =
      [ `Command of string * (int -> Unixqueue.event_system -> unit)
      | `Socket of Uq_engines.sockspec * Uq_engines.connect_options
      | `W32_pipe of Netsys_win32.pipe_mode * string ]
  and connect_options = { conn_bind : Uq_engines.sockspec option; }
  type connect_status =
      [ `Command of Unix.file_descr * int
      | `Socket of Unix.file_descr * Uq_engines.sockspec
      | `W32_pipe of Unix.file_descr ]
  class type client_endpoint_connector =
    object
      method connect :
        Uq_engines.connect_address ->
        Unixqueue.event_system -> Uq_engines.connect_status Uq_engines.engine
    end
  type listen_address =
      [ `Socket of Uq_engines.sockspec * Uq_engines.listen_options
      | `W32_pipe of
          Netsys_win32.pipe_mode * string * Uq_engines.listen_options ]
  and listen_options = { lstn_backlog : int; lstn_reuseaddr : bool; }
  class type server_endpoint_acceptor =
    object
      method accept :
        unit ->
        (Unix.file_descr * Uq_engines.inetspec option) Uq_engines.engine
      method multiple_connections : bool
      method server_address : Uq_engines.connect_address
      method shut_down : unit -> unit
    end
  class type server_endpoint_listener =
    object
      method listen :
        Uq_engines.listen_address ->
        Unixqueue.event_system ->
        Uq_engines.server_endpoint_acceptor Uq_engines.engine
    end
  type datagram_type = [ `Inet6_udp | `Inet_udp | `Unix_dgram ]
  class type wrapped_datagram_socket =
    object
      method datagram_type : Uq_engines.datagram_type
      method descriptor : Unix.file_descr
      method recvfrom :
        string ->
        int -> int -> Unix.msg_flag list -> int * Uq_engines.sockspec
      method sendto :
        string ->
        int -> int -> Unix.msg_flag list -> Uq_engines.sockspec -> int
      method shut_down : unit -> unit
      method socket_domain : Unix.socket_domain
      method socket_protocol : int
      method socket_type : Unix.socket_type
    end
  class type datagram_socket_provider =
    object
      method create_datagram_socket :
        Uq_engines.datagram_type ->
        Unixqueue.event_system ->
        Uq_engines.wrapped_datagram_socket Uq_engines.engine
    end
  module Debug : sig val enable : bool Pervasives.ref end
end
This web site is published by Informatikbüro Gerd Stolpmann
Powered by Caml