package dream-httpaf

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

Module Server_connection.SchedulerSource

Sourcemodule PriorityTreeNode : sig ... end
module PriorityQueue : sig ... end
type root = PriorityTreeNode.root =
  1. | Root
type nonroot = PriorityTreeNode.nonroot =
  1. | NonRoot
type stream = nonroot node
and parent = PriorityTreeNode.parent =
  1. | Parent : 'a node -> parent
and !'a node = 'a PriorityTreeNode.node =
  1. | Connection : {
    1. all_streams : stream Dream_h2__Scheduler.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_identifier.t * Stream.closed) list;
    } -> root node
  2. | Stream : {
    1. descriptor : Reqd.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
Sourcetype t = root node
Sourceval make_root : ?capacity:int -> unit -> root node
Sourceval create : parent:parent -> initial_send_window_size:Settings.WindowSize.t -> initial_recv_window_size:Settings.WindowSize.t -> Reqd.t -> nonroot node
Sourceval remove_from_parent : parent -> PriorityQueue.k -> unit
Sourceval children : 'a node -> PriorityQueue.t
Sourceval stream_id : 'a node -> int32
Sourceval set_parent : nonroot node -> exclusive:bool -> parent -> unit
Sourceval would_create_cycle : new_parent:parent -> nonroot node -> bool
Sourceval reprioritize_stream : root node -> priority:Priority.t -> nonroot node -> unit
Sourceval add : root node -> priority:Priority.t -> initial_send_window_size:Settings.WindowSize.t -> initial_recv_window_size:Settings.WindowSize.t -> Reqd.t -> nonroot node
Sourceval get_node : root node -> Stream_identifier.t -> stream option
Sourceval find : root node -> Stream_identifier.t -> Reqd.t option
Sourceval iter : root node -> f:(stream -> unit) -> unit
Sourceval allowed_to_transmit : root node -> nonroot node -> bool
Sourceval allowed_to_receive : root node -> nonroot node -> Settings.WindowSize.t -> bool
Sourceval write : root node -> nonroot node -> int
Sourceval update_t : nonroot node -> int -> unit
Sourceval mark_for_removal : root node -> Stream_identifier.t -> Stream.closed -> unit
Sourceval implicitly_close_idle_stream : Reqd.t -> (Stream_identifier.t * Stream_identifier.t) -> unit
Sourceval check_flow : Int32.t -> Int32.t -> Int32.t -> bool
Sourceval add_flow : 'a node -> int32 -> bool
Sourceval add_inflow : 'a node -> int32 -> bool
Sourceval deduct_inflow : 'a node -> int32 -> unit
Sourceval pp_hum : Format.formatter -> PriorityQueue.t -> unit
OCaml

Innovation. Community. Security.