capnp

OCaml code generation plugin for the Cap'n Proto serialization framework
IN THIS PACKAGE
type 'a t
val create : write:( 'a -> buf:string -> pos:int -> len:int -> int ) -> compression:Capnp.Codecs.compression_t -> 'a -> 'a t

create ~write ~compression descr creates a new context for writing data to the specified descriptor. compression specifies the compression format, if any.

The semantics of the write function shall mimic that of Unix.single_write, attempting to write a substring from the buf and returning the number of bytes actually written.

val enqueue_message : 'a t -> 'cap Capnp.Message.BytesMessage.Message.t -> unit

enqueue_message context message places the message in the outgoing queue of the write context. No data will be written to the underlying descriptor.

val bytes_remaining : 'a t -> int

bytes_remaining context obtains the number of unwritten bytes currently stored in the write context.

val write : 'a t -> int

write context attempts to write some of the queued data to the underlying descriptor associated with the write context.

  • returns

    the number of bytes actually written

val write_message : 'a t -> 'cap Capnp.Message.BytesMessage.Message.t -> unit

write_message context message places the message in the outgoing queue of the write context, then invokes write in a loop until all queued data has been written.