ankh v0.8.9 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
Guard to test if a stream id is locally originated
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() :: non_neg_integer()
Stream id
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: id(), recv_end_stream: boolean(), recv_hbf: iodata(), recv_hbf_type: hbf_type(), recv_headers: boolean(), reference: reference(), send_hbf_type: hbf_type(), state: state(), window_size: integer() }
Stream
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
Guard to test if a stream id is locally originated
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