sig
type xdr_value =
XV_int of Netnumber.int4
| XV_uint of Netnumber.uint4
| XV_hyper of Netnumber.int8
| XV_uhyper of Netnumber.uint8
| XV_enum of string
| XV_float of Netnumber.fp4
| XV_double of Netnumber.fp8
| XV_opaque of string
| XV_string of string
| XV_array of Netxdr.xdr_value array
| XV_struct of (string * Netxdr.xdr_value) list
| XV_union_over_int of (Netnumber.int4 * Netxdr.xdr_value)
| XV_union_over_uint of (Netnumber.uint4 * Netxdr.xdr_value)
| XV_union_over_enum of (string * Netxdr.xdr_value)
| XV_void
| XV_enum_fast of int
| XV_struct_fast of Netxdr.xdr_value array
| XV_union_over_enum_fast of (int * Netxdr.xdr_value)
| XV_array_of_string_fast of string array
| XV_mstring of Netxdr_mstring.mstring
| XV_direct of exn * int * (exn -> Netxdr.xdr_value)
val xv_true : Netxdr.xdr_value
val xv_false : Netxdr.xdr_value
val xv_none : Netxdr.xdr_value
val xv_some : Netxdr.xdr_value -> Netxdr.xdr_value
type xdr_type_term =
X_int
| X_uint
| X_hyper
| X_uhyper
| X_enum of (string * Netnumber.int4) list
| X_float
| X_double
| X_opaque_fixed of Netnumber.uint4
| X_opaque of Netnumber.uint4
| X_string of Netnumber.uint4
| X_mstring of string * Netnumber.uint4
| X_array_fixed of Netxdr.xdr_type_term * Netnumber.uint4
| X_array of Netxdr.xdr_type_term * Netnumber.uint4
| X_struct of (string * Netxdr.xdr_type_term) list
| X_union_over_int of (Netnumber.int4 * Netxdr.xdr_type_term) list *
Netxdr.xdr_type_term option
| X_union_over_uint of (Netnumber.uint4 * Netxdr.xdr_type_term) list *
Netxdr.xdr_type_term option
| X_union_over_enum of Netxdr.xdr_type_term *
(string * Netxdr.xdr_type_term) list * Netxdr.xdr_type_term option
| X_void
| X_type of string
| X_param of string
| X_rec of (string * Netxdr.xdr_type_term)
| X_refer of string
| X_direct of Netxdr.xdr_type_term *
(Stdlib.Bytes.t -> int Stdlib.ref -> int -> exn) *
(exn -> Stdlib.Bytes.t -> int Stdlib.ref -> unit) * (exn -> int) *
(exn -> Netxdr.xdr_value)
type xdr_type
type xdr_type_term_system = (string * Netxdr.xdr_type_term) list
type xdr_type_system
val x_bool : Netxdr.xdr_type_term
val x_optional : Netxdr.xdr_type_term -> Netxdr.xdr_type_term
val x_opaque_max : Netxdr.xdr_type_term
val x_string_max : Netxdr.xdr_type_term
val x_mstring_max : string -> Netxdr.xdr_type_term
val x_array_max : Netxdr.xdr_type_term -> Netxdr.xdr_type_term
exception Dest_failure
val dest_xv_int : Netxdr.xdr_value -> Netnumber.int4
val dest_xv_uint : Netxdr.xdr_value -> Netnumber.uint4
val dest_xv_hyper : Netxdr.xdr_value -> Netnumber.int8
val dest_xv_uhyper : Netxdr.xdr_value -> Netnumber.uint8
val dest_xv_enum : Netxdr.xdr_value -> string
val dest_xv_enum_fast : Netxdr.xdr_value -> int
val dest_xv_float : Netxdr.xdr_value -> Netnumber.fp4
val dest_xv_double : Netxdr.xdr_value -> Netnumber.fp8
val dest_xv_opaque : Netxdr.xdr_value -> string
val dest_xv_string : Netxdr.xdr_value -> string
val dest_xv_mstring : Netxdr.xdr_value -> Netxdr_mstring.mstring
val dest_xv_array : Netxdr.xdr_value -> Netxdr.xdr_value array
val dest_xv_array_of_string_fast : Netxdr.xdr_value -> string array
val dest_xv_struct : Netxdr.xdr_value -> (string * Netxdr.xdr_value) list
val dest_xv_struct_fast : Netxdr.xdr_value -> Netxdr.xdr_value array
val dest_xv_union_over_int :
Netxdr.xdr_value -> Netnumber.int4 * Netxdr.xdr_value
val dest_xv_union_over_uint :
Netxdr.xdr_value -> Netnumber.uint4 * Netxdr.xdr_value
val dest_xv_union_over_enum : Netxdr.xdr_value -> string * Netxdr.xdr_value
val dest_xv_union_over_enum_fast :
Netxdr.xdr_value -> int * Netxdr.xdr_value
val dest_xv_void : Netxdr.xdr_value -> unit
val map_xv_enum_fast : Netxdr.xdr_type -> Netxdr.xdr_value -> int32
val map_xv_struct_fast :
Netxdr.xdr_type -> Netxdr.xdr_value -> Netxdr.xdr_value array
val map_xv_union_over_enum_fast :
Netxdr.xdr_type -> Netxdr.xdr_value -> int * int32 * Netxdr.xdr_value
exception Xdr_format of string
exception Xdr_format_message_too_long of Netxdr.xdr_value
exception Xdr_failure of string
val validate_xdr_type : Netxdr.xdr_type_term -> Netxdr.xdr_type
val validate_xdr_type_system :
Netxdr.xdr_type_term_system -> Netxdr.xdr_type_system
val params : Netxdr.xdr_type -> string list
val xdr_type_term : Netxdr.xdr_type -> Netxdr.xdr_type_term
val xdr_type_term_system :
Netxdr.xdr_type_system -> Netxdr.xdr_type_term_system
val expanded_xdr_type :
Netxdr.xdr_type_system -> Netxdr.xdr_type_term -> Netxdr.xdr_type
val expanded_xdr_type_term :
Netxdr.xdr_type_term_system ->
Netxdr.xdr_type_term -> Netxdr.xdr_type_term
val are_compatible : Netxdr.xdr_type -> Netxdr.xdr_type -> bool
val value_matches_type :
Netxdr.xdr_value ->
Netxdr.xdr_type -> (string * Netxdr.xdr_type) list -> bool
type encoder = Netxdr_mstring.mstring list -> Netxdr_mstring.mstring list
type decoder = Stdlib.Bytes.t -> int -> int -> Stdlib.Bytes.t * int
val pack_xdr_value :
?encode:(string * Netxdr.encoder) list ->
Netxdr.xdr_value ->
Netxdr.xdr_type ->
(string * Netxdr.xdr_type) list -> (Stdlib.Bytes.t -> unit) -> unit
val pack_xdr_value_as_bytes :
?rm:bool ->
?encode:(string * Netxdr.encoder) list ->
Netxdr.xdr_value ->
Netxdr.xdr_type -> (string * Netxdr.xdr_type) list -> Stdlib.Bytes.t
val pack_xdr_value_as_string :
?rm:bool ->
?encode:(string * Netxdr.encoder) list ->
Netxdr.xdr_value ->
Netxdr.xdr_type -> (string * Netxdr.xdr_type) list -> string
val pack_xdr_value_as_mstrings :
?rm:bool ->
?encode:(string * Netxdr.encoder) list ->
Netxdr.xdr_value ->
Netxdr.xdr_type ->
(string * Netxdr.xdr_type) list -> Netxdr_mstring.mstring list
type xdr_value_version = [ `Ocamlrpcgen | `V1 | `V2 | `V3 | `V4 ]
val unpack_xdr_value :
?pos:int ->
?len:int ->
?fast:bool ->
?prefix:bool ->
?mstring_factories:Netxdr_mstring.named_mstring_factories ->
?xv_version:Netxdr.xdr_value_version ->
?decode:(string * Netxdr.decoder) list ->
Stdlib.Bytes.t ->
Netxdr.xdr_type -> (string * Netxdr.xdr_type) list -> Netxdr.xdr_value
val unpack_xdr_value_l :
?pos:int ->
?len:int ->
?fast:bool ->
?prefix:bool ->
?mstring_factories:Netxdr_mstring.named_mstring_factories ->
?xv_version:Netxdr.xdr_value_version ->
?decode:(string * Netxdr.decoder) list ->
Stdlib.Bytes.t ->
Netxdr.xdr_type ->
(string * Netxdr.xdr_type) list -> Netxdr.xdr_value * int
val unpack_xdr_value_str :
?pos:int ->
?len:int ->
?fast:bool ->
?prefix:bool ->
?mstring_factories:Netxdr_mstring.named_mstring_factories ->
?xv_version:Netxdr.xdr_value_version ->
?decode:(string * Netxdr.decoder) list ->
string ->
Netxdr.xdr_type ->
(string * Netxdr.xdr_type) list -> Netxdr.xdr_value * int
val get_string_decoration_size : int -> Netnumber.uint4 -> int
val sizefn_string : Netnumber.uint4 -> string -> int
val sizefn_mstring : Netnumber.uint4 -> Netxdr_mstring.mstring -> int
val write_string_fixed :
int -> string -> Stdlib.Bytes.t -> int Stdlib.ref -> unit
val write_string : string -> Stdlib.Bytes.t -> int Stdlib.ref -> unit
val read_string_fixed :
int -> Stdlib.Bytes.t -> int Stdlib.ref -> int -> string
val read_string :
Netnumber.uint4 -> Stdlib.Bytes.t -> int Stdlib.ref -> int -> string
val raise_xdr_format_too_short : unit -> 'a
val raise_xdr_format_value_not_included : unit -> 'a
val raise_xdr_format_maximum_length : unit -> 'a
val raise_xdr_format_undefined_descriminator : unit -> 'a
val safe_add : int -> int -> int
val safe_mul : int -> int -> int
type ctx = {
ctx_direct : bool;
ctx_direct_sub : bool;
ctx_copy_string : string -> string;
}
val default_ctx : Netxdr.ctx
val expand_ctx : Netxdr.ctx
val direct_ctx : Netxdr.ctx
end