package dream-httpaf

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Parameters

Signature

module PriorityTreeNode : sig ... end
module PriorityQueue : Psq.S with type k = Stdlib.Int32.t and type p = PriorityTreeNode.stream
include module type of struct include PriorityTreeNode end
type root = PriorityTreeNode.root =
  1. | Root
type nonroot = PriorityTreeNode.nonroot =
  1. | NonRoot
type stream = nonroot node
and parent = PriorityTreeNode.parent =
  1. | Parent : _ node -> parent
and _ node = _ PriorityTreeNode.node =
  1. | Connection : {
    1. all_streams : stream StreamsTbl.t;
    2. mutable t_last : int;
    3. mutable children : PriorityQueue.t;
    4. mutable flow : Settings.WindowSize.t;
    5. mutable inflow : Settings.WindowSize.t;
    6. mutable marked_for_removal : Stream.closed StreamsTbl.t;
    } -> root node
  2. | Stream : {
    1. descriptor : Streamd.t;
    2. mutable t_last : int;
    3. mutable t : int;
    4. mutable priority : Priority.t;
    5. mutable parent : parent;
    6. mutable children : PriorityQueue.t;
    7. mutable flow : Settings.WindowSize.t;
    8. mutable inflow : Settings.WindowSize.t;
    } -> nonroot node
type t = root node
val make_root : ?capacity:int -> unit -> root node
val create : parent:parent -> initial_send_window_size:Settings.WindowSize.t -> initial_recv_window_size:Settings.WindowSize.t -> Streamd.t -> nonroot node
val stream_id : 'a. 'a node -> int32
val children : 'a. 'a node -> PriorityQueue.t
val remove_child : 'a. 'a node -> int32 -> unit
val update_children : 'a. 'a node -> PriorityQueue.t -> unit
val set_parent : nonroot node -> exclusive:bool -> parent -> unit
val would_create_cycle : new_parent:parent -> nonroot node -> bool
val reprioritize_stream : root node -> priority:Priority.t -> nonroot node -> unit
val update_t : nonroot node -> int -> unit
val update_t_last : 'a. 'a node -> int -> unit
val add : root node -> priority:Priority.t -> initial_send_window_size:Settings.WindowSize.t -> initial_recv_window_size:Settings.WindowSize.t -> Streamd.t -> nonroot node
val get_node : root node -> StreamsTbl.key -> stream option
val find : root node -> StreamsTbl.key -> Streamd.t option
val iter : root node -> f:(stream -> unit) -> unit
val allowed_to_transmit : root node -> nonroot node -> bool
val allowed_to_receive : root node -> nonroot node -> Settings.WindowSize.t -> bool
val write : root node -> nonroot node -> int
val mark_for_removal : root node -> StreamsTbl.key -> Stream.closed -> unit
val implicitly_close_idle_stream : Streamd.t -> (Stream_identifier.t * Stream_identifier.t) -> unit
val check_flow : Stdlib.Int32.t -> Stdlib.Int32.t -> Stdlib.Int32.t -> bool
val add_flow : 'a. 'a node -> int32 -> bool
val add_inflow : 'a. 'a node -> int32 -> bool
val deduct_inflow : 'a. 'a node -> int32 -> unit
val pp_hum : Stdlib.Format.formatter -> root node -> unit
OCaml

Innovation. Community. Security.