Module Core_profiler.Header_protocol
type (-'hierarchy, -'rw) t
constraint 'rw = [> Core.read ]
type ('hierarchy, 'rw) message
= ('hierarchy, 'rw) t
val sexp_of_t : _ -> _ -> (_, _) t -> Core.Sexp.t
type ('hierarchy, 'rw) t_no_exn
= ('hierarchy, 'rw) t
val sexp_of_t_no_exn : _ -> _ -> (_, _) t_no_exn -> Core.Sexp.t
val to_iobuf : (_, 'rw) t -> ('rw, Core.Iobuf.no_seek) Core.Iobuf.t
module R : sig ... end
module Message_type_and_errors : sig ... end
val get_message_type : ([> Core.read ], _) Core.Iobuf.t -> Message_type_and_errors.packed
val of_iobuf : ('rw, _) Core.Iobuf.t -> trusted:'ty Message_type_and_errors.t -> ('ty, 'rw) t
of_iobuf
must be fed a message type that comes from a call toget_message_type
on the same window, otherwise it may cause segfaults or nonsensical reads.
val of_iobuf_exn : ('rw, _) Core.Iobuf.t -> 'ty Message_type_and_errors.t -> ('ty, 'rw) t
module New_single : sig ... end
module New_group : sig ... end
module New_group_point : sig ... end
module End_of_header : sig ... end
module Epoch : sig ... end
module Unpacked : sig ... end
val num_bytes_needed_for_message_length : int
val num_bytes_in_message : ([> Core.read ], _) Core.Iobuf.t -> int
Assuming the iobuf starts at a message, returns its length or raise if the window doesn't contain
num_bytes_needed_for_message_length
bytes.
val skip_message : ([> Core.read ], Core.Iobuf.seek) Core.Iobuf.t -> unit
Equivalent to
Iobuf.advance buf (num_bytes_in_message buf)
val buffer_contains_full_message : ([> Core.read ], _) Core.Iobuf.t -> bool
val of_unpacked : Unpacked.t -> (_, _) Core.Iobuf.t
val to_unpacked : ([> Core.read ], _) Core.Iobuf.t -> Unpacked.t R.t
val to_unpacked_exn : ([> Core.read ], _) Core.Iobuf.t -> Unpacked.t