ankh v0.8.3 Ankh.HTTP2.Stream
HTTP/2 stream process
Struct implementing the HTTP/2 stream state machine
Link to this section Summary
Functions
Adjusts the stream window size
Starts a new stream fot the provided connection
Process a received frame for the stream
Process and send a frame on the stream
Link to this section Types
Link to this type
data()
Specs
data() :: {data_type(), reference(), iodata(), end_stream()} | {:error, reference(), Ankh.HTTP2.Error.t(), end_stream()}
Link to this type
data_type()
Specs
data_type() :: :headers | :data | :push_promise
Link to this type
end_stream()
Specs
end_stream() :: boolean()
Link to this type
hbf_type()
Specs
hbf_type() :: :headers | :push_promise | nil
Stream HBF type
Link to this type
id()
Specs
id() :: integer()
Stream id
Link to this type
reserve_mode()
Specs
reserve_mode() :: :local | :remote
Reserve mode
Link to this type
state()
Specs
state() :: :idle | :open | :closed | :half_closed_local | :half_closed_remote | :reserved_remote | :reserved_local
Stream states
Specs
t() :: %Ankh.HTTP2.Stream{ id: term(), recv_hbf: term(), recv_hbf_es: term(), recv_hbf_type: term(), reference: term(), state: term(), window_size: term() }
Stream process
Link to this section Functions
Link to this function
adjust_window_size(stream, old_window_size, new_window_size)
Specs
Adjusts the stream window size
Link to this function
new(id, window_size)
Specs
Starts a new stream fot the provided connection
Link to this function
recv(stream, frame)
Specs
recv(t(), Ankh.HTTP2.Frame.t()) :: {:ok, t(), data() | nil} | {:error, any()}
Process a received frame for the stream
Link to this function
send(stream, frame)
Specs
send(t(), Ankh.HTTP2.Frame.t()) :: {:ok, t()} | {:error, any()}
Process and send a frame on the stream