abstract datatype: http2_machine()
opts() = #{connection_window_margin_size => 0..2147483647, connection_window_update_threshold => 0..2147483647, enable_connect_protocol => boolean(), initial_connection_window_size => 65535..2147483647, initial_stream_window_size => 0..2147483647, max_connection_window_size => 0..2147483647, max_concurrent_streams => non_neg_integer() | infinity, max_decode_table_size => non_neg_integer(), max_encode_table_size => non_neg_integer(), max_fragmented_header_block_size => 16384..2147483647, max_frame_size_received => 16384..16777215, max_frame_size_sent => 16384..16777215 | infinity, max_stream_window_size => 0..2147483647, message_tag => any(), preface_timeout => timeout(), settings_timeout => timeout(), stream_window_data_threshold => 0..2147483647, stream_window_margin_size => 0..2147483647, stream_window_update_threshold => 0..2147483647}
ensure_window(Size::non_neg_integer(), State) -> ok | {ok, pos_integer(), State}
State = http2_machine()
ensure_window(StreamID::cow_http2:streamid(), Size::non_neg_integer(), State) -> ok | {ok, pos_integer(), State}
State = http2_machine()
frame(Frame::cow_http2:frame(), State) -> {ok, State} | {ok, {data, cow_http2:streamid(), cow_http:fin(), binary()}, State} | {ok, {headers, cow_http2:streamid(), cow_http:fin(), cow_http:headers(), cow_http:pseudo_headers(), non_neg_integer() | undefined}, State} | {ok, {trailers, cow_http2:streamid(), cow_http:headers()}, State} | {ok, {rst_stream, cow_http2:streamid(), cow_http2:error()}, State} | {ok, {push_promise, cow_http2:streamid(), cow_http2:streamid(), cow_http:headers(), cow_http:pseudo_headers()}, State} | {ok, {goaway, cow_http2:streamid(), cow_http2:error(), binary()}, State} | {send, [{cow_http2:streamid(), cow_http:fin(), [{data, iodata()} | #sendfile{offset = non_neg_integer(), bytes = pos_integer(), path = file:name_all()} | {trailers, cow_http:headers()}]}], State} | {error, {stream_error, cow_http2:streamid(), cow_http2:error(), atom()}, State} | {error, {connection_error, cow_http2:error(), atom()}, State}
State = http2_machine()
get_connection_local_buffer_size(Http2_machine::http2_machine()) -> non_neg_integer()
get_last_streamid(Http2_machine::http2_machine()) -> cow_http2:streamid()
get_local_setting(Key::atom(), Http2_machine::http2_machine()) -> atom() | integer()
get_remote_settings(Http2_machine::http2_machine()) -> map()
get_stream_local_buffer_size(StreamID::cow_http2:streamid(), State::http2_machine()) -> {ok, non_neg_integer()} | {error, not_found | closed}
get_stream_local_state(StreamID::cow_http2:streamid(), State::http2_machine()) -> {ok, idle | cow_http:fin(), empty | nofin | fin} | {error, not_found | closed}
get_stream_remote_state(StreamID::cow_http2:streamid(), State::http2_machine()) -> {ok, idle | cow_http:fin()} | {error, not_found | closed}
ignored_frame(State) -> {ok, State} | {error, {connection_error, protocol_error, atom()}, State}
State = http2_machine()
init(X1::client | server, Opts::opts()) -> {ok, iodata(), http2_machine()}
init_upgrade_stream(Method::binary(), State) -> {ok, cow_http2:streamid(), State}
State = http2_machine()
is_lingering_stream(StreamID::cow_http2:streamid(), Http2_machine::http2_machine()) -> boolean()
is_remote_concurrency_limit_reached(State::http2_machine()) -> boolean()
prepare_headers(StreamID::cow_http2:streamid(), State, IsFin0::idle | cow_http:fin(), PseudoHeaders::cow_http:pseudo_headers(), Headers0::cow_http:headers()) -> {ok, cow_http:fin(), iodata(), State}
State = http2_machine()
prepare_push_promise(StreamID::cow_http2:streamid(), State, PseudoHeaders::cow_http:pseudo_headers(), Headers0::cow_http:headers()) -> {ok, cow_http2:streamid(), iodata(), State} | {error, no_push}
State = http2_machine()
prepare_trailers(StreamID::cow_http2:streamid(), State, Trailers::cow_http:headers()) -> {ok, iodata(), State}
State = http2_machine()
reset_stream(StreamID::cow_http2:streamid(), State) -> {ok, State} | {error, not_found}
State = http2_machine()
send_or_queue_data(StreamID::cow_http2:streamid(), State, IsFin0::cow_http:fin(), DataOrFileOrTrailers) -> {ok, State} | {send, [{cow_http2:streamid(), cow_http:fin(), [DataOrFileOrTrailers]}], State}
State = http2_machine()DataOrFileOrTrailers = {data, iodata()} | #sendfile{offset = non_neg_integer(), bytes = pos_integer(), path = file:name_all()} | {trailers, cow_http:headers()}
set_last_streamid(State::http2_machine()) -> {cow_http2:streamid(), http2_machine()}
terminate(State::http2_machine()) -> ok
timeout(X1::preface_timeout | settings_timeout, TRef::reference(), State) -> {ok, State} | {error, {connection_error, cow_http2:error(), atom()}, State}
State = http2_machine()
update_window(StreamID::cow_http2:streamid(), Size::1..2147483647, State) -> State
State = http2_machine()
Generated by EDoc