package capnp

  1. Overview
  2. Docs
OCaml code generation plugin for the Cap'n Proto serialization framework

Install

Dune Dependency

Authors

Maintainers

Sources

v3.2.1.tar.gz
sha256=20221b396b17c654e5d0870761bef50c5a5dc99bc578e31980bac76dae1d3560
md5=1c8519640a3e5f06c48220d2194d9d36

doc/capnp.unix/Capnp_unix/IO/ReadContext/index.html

Module IO.ReadContext

type 'a t
val create : read:('a -> buf:Bytes.t -> pos:int -> len:int -> int) -> compression:Capnp.Codecs.compression_t -> 'a -> 'a t

create ~read ~compression descr creates a new context for reading data from the specified descriptor using the specified compression method.

The semantics of the read function shall mimic that of Unix.read, attempting to read into a substring of the buf and returning the number of bytes actually read. A read of length 0 indicates end-of-file.

val dequeue_message : 'a t -> Capnp.Message.rw Capnp.Message.BytesMessage.Message.t option

dequeue_message context attempts to remove a complete message from the incoming queue of the read context. No data will be read from the underlying descriptor.

  • returns

    None if there is insufficient data stored in the read context to decode a complete message

  • raises Unsupported_message_frame

    if the frame header describes a segment count or segment size that is too large for the implementation

val bytes_available : 'a t -> int

bytes_available context obtains the number of bytes already read which are currently stored in the read context.

val read : 'a t -> int

read context attempts to read some data from the underlying descriptor, storing it in the read context.

  • returns

    the number of bytes actually read

read_message context attempts to remove a complete message from the incoming queue of the read context. read may be invoked repeatedly to provide enough buffered data to decode a complete message.

  • returns

    None if end-of-file was reached before a complete message could be read

  • raises Unsupported_message_frame

    if the frame header describes a segment count or segment size that is too large for the implementation

OCaml

Innovation. Community. Security.