Plasma GitLab Archive
Projects Blog Knowledge

sig
  type protocol_violation =
      [ `BadMessageType
      | `CompressionNotSupported
      | `MessageFormatViolation of string ]
  exception Protocol_violation of Hydro_types.protocol_violation
  exception Marshal_error of string
  exception Unmarshal_error of string
  type limitation =
      [ `UnsupportedEncodingVersion
      | `UnsupportedEndpointType of int
      | `UnsupportedProtocolVersion ]
  exception Limitation of Hydro_types.limitation
  type proxy_error =
      [ `NoCallableEndpointFound
      | `NoEndpointIsReachable
      | `NoLocatorIsReachable
      | `ProxyIsDown ]
  exception Proxy_error of Hydro_types.proxy_error
  exception Domain_not_found of string
  exception Unbound_exception of exn
  exception Unimplemented_operation of string
  type noreturn
  type value =
      VNothing
    | VBool of bool
    | VByte of int
    | VShort of int
    | VInt of int
    | VInt32 of int32
    | VLong of int64
    | VFloat of float
    | VDouble of float
    | VString of string
    | VSequence of Hydro_types.value array
    | VByteseq of string
    | VDictionary of (Hydro_types.value * Hydro_types.value) array
    | VEnum of int
    | VStruct of Hydro_types.value array
    | VNull
    | VClass of Hydro_types.class_repr Pervasives.ref
    | VProxy of Hydro_types.proxy_addr
    | VDirectWriter of (Netbuffer.t -> unit)
    | VDirectMapping of exn
  and class_repr =
      [ `Placeholder of int32 | `Value of Hydro_types.object_value ]
  and sliced_value =
      < hydro_effective_id : string; hydro_slices : Hydro_types.slice list >
  and object_value =
      < hydro_effective_id : string;
        hydro_inflate : string -> Hydro_types.noreturn;
        hydro_invoke_operation : string ->
                                 Hydro_types.value array ->
                                 Hydro_types.session -> unit;
        hydro_slices : Hydro_types.slice list >
  and slice =
      [ `Decoded of string * Hydro_types.value array
      | `Opaque of string * string ]
  and proxy_addr =
      < facet : string option; id : Hydro_types.identity;
        mode : Hydro_types.proxy_mode;
        parameters : Hydro_types.proxy_parameters; secure : bool >
  and proxy_mode =
      [ `Batch_datagram | `Batch_oneway | `Datagram | `Oneway | `Twoway ]
  and proxy_parameters =
      [ `Adapter of string
      | `Endpoints of Hydro_types.endpoint array
      | `Well_known ]
  and endpoint =
      [ `SSL of Hydro_types.ssl_endpoint
      | `TCP of Hydro_types.tcp_endpoint
      | `UDP of Hydro_types.udp_endpoint
      | `Unknown of int * string ]
  and endpoint_type = [ `SSL | `TCP | `UDP | `Unknown of int ]
  and tcp_endpoint =
      < compress : bool; host : string; port : int; timeout : int32 >
  and udp_endpoint =
      < compress : bool; enc_major : int; enc_minor : int; host : string;
        port : int; proto_major : int; proto_minor : int >
  and ssl_endpoint = Hydro_types.tcp_endpoint
  and identity = < category : string; name : string >
  and htype =
      TVoid
    | TBool
    | TByte
    | TShort
    | TInt
    | TInt32
    | TLong
    | TFloat
    | TDouble
    | TString
    | TByteseq
    | TEnum of string array
    | TStruct of (string * Hydro_types.htype) array
    | TSequence of Hydro_types.htype
    | TDictionary of Hydro_types.htype * Hydro_types.htype
    | TProxy of string
    | TClass of string
    | TDirectMapping of Hydro_types.htype * (Netbuffer.t -> exn -> unit) *
        (string -> int Pervasives.ref -> int -> exn)
  and hexn =
      < elements : (string * Hydro_types.htype) array; name : string;
        super : Hydro_types.hexn option >
  and hintf =
      < elements : Hydro_types.hfunction list; name : string;
        super : Hydro_types.hintf list >
  and hfunction =
      < in_args : (string * Hydro_types.htype) array; in_classes : bool;
        mode : Hydro_types.op_mode; name : string;
        out_args : (string * Hydro_types.htype) array; out_classes : 
        bool; result : Hydro_types.htype >
  and hclass =
      < elements : (string * Hydro_types.htype) array; name : string;
        super : Hydro_types.hclass option >
  and system =
      < classes : Hydro_types.hclass Hydro_prelim.CiHashtbl.t;
        ctors : (Hydro_types.sliced_value -> Hydro_types.object_value)
                Hydro_prelim.CiHashtbl.t;
        exceptions : Hydro_types.hexn Hydro_prelim.CiHashtbl.t;
        interfaces : Hydro_types.hintf Hydro_prelim.CiHashtbl.t;
        types : Hydro_types.htype Hydro_prelim.CiHashtbl.t >
  and op_mode = [ `Idempotent | `Nonmutating | `Normal ]
  and msg_type =
      [ `Batch_request
      | `Close_connection
      | `Reply
      | `Request
      | `Validate_connection ]
  and compression_status =
      [ `Compressed | `Compression_unsupported | `Uncompressed ]
  and msg_header =
      < body_size : int; compression : Hydro_types.compression_status;
        enc_major : int; enc_minor : int; msg_type : Hydro_types.msg_type;
        proto_major : int; proto_minor : int >
  and encap_buffer = {
    encap_buf : Netbuffer.t;
    encap_pos : int;
    encap_len : int;
    encap_enc_minor : int;
  }
  and msg_buffer = Hydro_types.msg_header * Hydro_types.encap_buffer list
  and msg =
      [ `Batch_request of Hydro_types.batch_request_msg list
      | `Close_connection
      | `Reply of Hydro_types.reply_msg
      | `Request of Hydro_types.request_msg
      | `Validate_connection ]
  and request_msg =
      < context : (string * string) array; facet : string option;
        id : Hydro_types.identity; mode : Hydro_types.op_mode;
        operation : string; params : Hydro_types.encap_buffer;
        request_id : int32 >
  and batch_request_msg =
      < context : (string * string) array; facet : string option;
        id : Hydro_types.identity; mode : Hydro_types.op_mode;
        operation : string; params : Hydro_types.encap_buffer >
  and reply_msg = < request_id : int32; result : Hydro_types.result >
  and result =
      [ `Facet_does_not_exist of
          Hydro_types.identity * string option * string
      | `Object_does_not_exist of
          Hydro_types.identity * string option * string
      | `Operation_does_not_exist of
          Hydro_types.identity * string option * string
      | `Success of Hydro_types.encap_buffer
      | `Unknown_exception of string
      | `Unknown_local_exception of string
      | `Unknown_user_exception of string
      | `User_exception of Hydro_types.encap_buffer ]
  and call_params =
      < context : (string * string) list option;
        destination : Unix.sockaddr option; msg_timeout : float option >
  and exn_handler = < handle : exn -> unit >
  and client_params =
      < exception_handler : Hydro_types.exn_handler; idle_timeout : float;
        max_enc_minor : int option; max_proto_minor : int option;
        msg_timeout : float; trans_timeout : float >
  and server_params = < trans_timeout : float >
  and server_ops =
      < abort_connection : unit -> unit; endpoint : Hydro_types.endpoint;
        event_system : Unixqueue.event_system; server_id : int;
        server_params : Hydro_types.server_params;
        shutdown_connection : unit -> unit; system : Hydro_types.system >
  and session =
      < context : (string * string) list;
        emit_result : Hydro_types.value -> Hydro_types.value array -> unit;
        emit_unknown_exception : string -> unit;
        emit_unknown_local_exception : string -> unit;
        emit_unknown_user_exception : string -> unit;
        emit_user_exception : Hydro_types.sliced_value -> unit;
        is_responded : bool; request_id : int32;
        response : Hydro_types.reply_msg option;
        server_ops : Hydro_types.server_ops >
  and operation_dispatcher =
      < hydro_effective_id : string;
        hydro_invoke_operation : string ->
                                 Hydro_types.value array ->
                                 Hydro_types.session -> unit >
  and facet_dispatcher =
      < invoke_facet : string option -> Hydro_types.operation_dispatcher >
  and object_dispatcher =
      < adapter_id : string option;
        get_identity : Hydro_types.operation_dispatcher ->
                       Hydro_types.identity;
        invoke_object : Hydro_types.identity -> Hydro_types.facet_dispatcher;
        replica_group_id : string option >
  and client_condition =
      [ `Client_is_down
      | `Connect_error of exn
      | `Connect_timeout
      | `Error of exn
      | `Facet_does_not_exist of
          Hydro_types.identity * string option * string
      | `Message_lost of bool
      | `Message_timeout
      | `Object_does_not_exist of
          Hydro_types.identity * string option * string
      | `Operation_does_not_exist of
          Hydro_types.identity * string option * string
      | `Transport_timeout
      | `Unknown_exception of string
      | `Unknown_local_exception of string
      | `Unknown_user_exception of string
      | `User_exception of Hydro_types.sliced_value ]
  exception Client_condition of Hydro_types.client_condition
  type transport_protocol_type = [ `Datagram | `Stream ]
  class type descriptor =
    object
      method file_descr : Unix.file_descr
      method is_master : bool
      method proto_type : Hydro_types.transport_protocol_type
      method shutdown : unit -> unit
    end
  type network_port =
      [ `TCP of Unix.inet_addr * int | `UDP of Unix.inet_addr * int ]
end
This web site is published by Informatikbüro Gerd Stolpmann
Powered by Caml