package httpaf

  1. Overview
  2. Docs
type 'rw t
val schedule_read : [ `read ] t -> on_eof:(unit -> unit) -> on_read:(Bigstring.t -> off:int -> len:int -> unit) -> unit
val write_char : [ `write ] t -> char -> unit

write_char w char copies char into an internal buffer. If possible, this write will be combined with previous and/or subsequent writes before transmission.

val write_string : [ `write ] t -> ?off:int -> ?len:int -> string -> unit

write_string w ?off ?len str copies str into an internal buffer. If possible, this write will be combined with previous and/or subsequent writes before transmission.

val write_bigstring : [ `write ] t -> ?off:int -> ?len:int -> Bigstring.t -> unit

write_bigstring w ?off ?len bs copies bs into an internal buffer. If possible, this write will be combined with previous and/or subsequent writes before transmission.

val schedule_bigstring : [ `write ] t -> ?off:int -> ?len:int -> Bigstring.t -> unit

schedule_bigstring w ?off ?len bs schedules bs to be transmitted at the next opportunity without performing a copy. bs should not be modified until a subsequent call to flush has successfully completed.

val flush : [ `write ] t -> (unit -> unit) -> unit

flush t f makes all bytes in t available for writing to the awaiting output channel. Once those bytes have reached that output channel, f will be called.

The type of the output channel is runtime-dependent, as are guarantees about whether those packets have been queued for deliver or have actually been received by the intended recipient.

val close_reader : [ `read ] t -> unit

close_reader t closes t, indicating that any subsequent input received should be discarded.

val close_writer : [ `write ] t -> unit

close_writer t closes t, causing subsequent write calls to raise. If t is writable, this will cause any pending output to become available to the output channel.

val is_closed : _ t -> bool

is_closed t is true if close has been called on t and false otherwise. A closed t may still have pending output.