Module cow_http3_machine

Data Types

http3_machine()

abstract datatype: http3_machine()

instructions()

instructions() = undefined | {decoder_instructions | encoder_instructions, iodata()}

opts()

opts() = #{enable_connect_protocol => boolean(), max_decode_blocked_streams => 0..4611686018427387903, max_decode_table_size => 0..4611686018427387903, max_encode_blocked_streams => 0..4611686018427387903, max_encode_table_size => 0..4611686018427387903}

unidi_stream_dir()

unidi_stream_dir() = unidi_local | unidi_remote

unidi_stream_type()

unidi_stream_type() = control | push | encoder | decoder

Function Index

become_webtransport_session/2
become_webtransport_stream/3
close_bidi_stream_for_sending/2
close_stream/2
close_webtransport_session/2
frame/4
get_bidi_stream_local_state/2
get_bidi_stream_remote_state/2
ignored_frame/2
init/2
init_bidi_stream/2
init_bidi_stream/3
init_unidi_local_streams/4
init_unidi_stream/3
prepare_headers/5
prepare_trailers/3
reset_stream/2
set_unidi_remote_stream_type/3
unidi_data/4

Function Details

become_webtransport_session/2

become_webtransport_session(StreamID::cow_http3:stream_id(), State) -> State

become_webtransport_stream/3

become_webtransport_stream(StreamID::cow_http3:stream_id(), SessionID::cow_http3:stream_id(), State) -> {ok, State}

close_bidi_stream_for_sending/2

close_bidi_stream_for_sending(StreamID::cow_http3:stream_id(), State) -> State

close_stream/2

close_stream(StreamID::cow_http3:stream_id(), State) -> {ok, State} | {error, {connection_error, h3_closed_critical_stream, atom()}, State}

close_webtransport_session/2

close_webtransport_session(SessionID::cow_http3:stream_id(), State) -> State

frame/4

frame(Frame::cow_http3:frame(), IsFin::cow_http:fin(), StreamID::cow_http3:stream_id(), State) -> {ok, State} | {ok, {data, binary()}, State} | {ok, {headers, cow_http:headers(), cow_http:pseudo_headers(), non_neg_integer() | undefined}, instructions(), State} | {ok, {trailers, cow_http:headers()}, instructions(), State} | {ok, {goaway, cow_http3:stream_id() | cow_http3:push_id()}, State} | {error, {stream_error, h3_message_error, atom()}, instructions(), State} | {error, {connection_error, cow_http3:error() | cow_qpack:error(), atom()}, State}

get_bidi_stream_local_state/2

get_bidi_stream_local_state(StreamID::cow_http3:stream_id(), State::http3_machine()) -> {ok, idle | cow_http:fin()} | {error, not_found}

get_bidi_stream_remote_state/2

get_bidi_stream_remote_state(StreamID::cow_http3:stream_id(), State::http3_machine()) -> {ok, idle | cow_http:fin()} | {error, not_found}

ignored_frame/2

ignored_frame(StreamID::cow_http3:stream_id(), State) -> {ok, State} | {error, {connection_error, cow_http3:error(), atom()}, State}

init/2

init(Mode::client | server, Opts::opts()) -> {ok, iolist(), http3_machine()}

init_bidi_stream/2

init_bidi_stream(StreamID::cow_http3:stream_id(), State) -> State

init_bidi_stream/3

init_bidi_stream(StreamID::cow_http3:stream_id(), Method::binary(), State) -> State

init_unidi_local_streams/4

init_unidi_local_streams(ControlID::cow_http3:stream_id(), EncoderID::cow_http3:stream_id(), DecoderID::cow_http3:stream_id(), State) -> State

init_unidi_stream/3

init_unidi_stream(StreamID::cow_http3:stream_id(), StreamDir::unidi_stream_dir(), State) -> State

prepare_headers/5

prepare_headers(StreamID::cow_http3:stream_id(), State, IsFin0::idle | cow_http:fin(), PseudoHeaders::cow_http:pseudo_headers(), Headers0::cow_http:headers()) -> {ok, cow_http:fin(), iodata(), instructions(), State}

prepare_trailers/3

prepare_trailers(StreamID::cow_http3:stream_id(), State, Trailers::cow_http:headers()) -> {trailers, iodata(), instructions(), State} | {no_trailers, State}

reset_stream/2

reset_stream(StreamID::cow_http3:stream_id(), State) -> {ok, State} | {error, not_found}

set_unidi_remote_stream_type/3

set_unidi_remote_stream_type(StreamID::cow_http3:stream_id(), Type::unidi_stream_type(), State) -> {ok, State} | {error, {connection_error, h3_stream_creation_error, atom()}, State}

unidi_data/4

unidi_data(Data::binary(), X2::cow_http:fin(), StreamID::cow_http3:stream_id(), State) -> {ok, instructions(), State} | {error, {connection_error, cow_qpack:error(), atom()}, State}


Generated by EDoc