emqtt_quic (emqtt v1.15.1)

View Source

Summary

Types

cb_data/0

-type cb_data() ::
          #{clientid := binary(),
            connection_parse_state := emqtt_frame:parse_state(),
            stream_parse_state := #{quic_sock() => emqtt_frame:parse_state()},
            data_stream_socks := [quic_sock()],
            control_stream_sock := undefined | quic_sock(),
            stream_opts := map(),
            state_name := atom(),
            is_local => boolean(),
            is_unidir => boolean(),
            quic_conn_cb => module(),
            quic_stream_cb => module(),
            reconnect => boolean(),
            peer_bidi_stream_count => non_neg_integer(),
            peer_unidi_stream_count => non_neg_integer()}.

mqtt_packets/0

-type mqtt_packets() ::
          [#mqtt_packet{header ::
                            #mqtt_packet_header{type :: term(),
                                                dup :: term(),
                                                qos :: term(),
                                                retain :: term()},
                        variable ::
                            #mqtt_packet_connect{proto_name :: term(),
                                                 proto_ver :: term(),
                                                 is_bridge :: term(),
                                                 clean_start :: term(),
                                                 will_flag :: term(),
                                                 will_qos :: term(),
                                                 will_retain :: term(),
                                                 keepalive :: term(),
                                                 properties :: term(),
                                                 clientid :: term(),
                                                 will_props :: term(),
                                                 will_topic :: term(),
                                                 will_payload :: term(),
                                                 username :: term(),
                                                 password :: term()} |
                            #mqtt_packet_connack{ack_flags :: term(),
                                                 reason_code :: term(),
                                                 properties :: term()} |
                            #mqtt_packet_publish{topic_name :: term(),
                                                 packet_id :: term(),
                                                 properties :: term()} |
                            #mqtt_packet_puback{packet_id :: term(),
                                                reason_code :: term(),
                                                properties :: term()} |
                            #mqtt_packet_subscribe{packet_id :: term(),
                                                   properties :: term(),
                                                   topic_filters :: term()} |
                            #mqtt_packet_suback{packet_id :: term(),
                                                properties :: term(),
                                                reason_codes :: term()} |
                            #mqtt_packet_unsubscribe{packet_id :: term(),
                                                     properties :: term(),
                                                     topic_filters :: term()} |
                            #mqtt_packet_unsuback{packet_id :: term(),
                                                  properties :: term(),
                                                  reason_codes :: term()} |
                            #mqtt_packet_disconnect{reason_code :: term(), properties :: term()} |
                            #mqtt_packet_auth{reason_code :: term(), properties :: term()} |
                            pos_integer() |
                            undefined,
                        payload :: binary() | undefined}] |
          [].

quic_msg/0

-type quic_msg() :: {quic, atom() | binary(), Resource :: any(), Props :: any()}.

quic_sock/0

-type quic_sock() :: {quic, quicer:connection_handle(), quicer:stream_handle()}.

Functions

close(_)

connect(Host, Port, Opts, Timeout)

getstat(_, Options)

handle_info(_, StateName, CBState)

-spec handle_info(quic_msg(), atom(), cb_data()) -> gen_statem:handle_event_result().

init_state(OldData)

-spec init_state(map()) -> cb_data().

open_connection()

recv(_, Count)

send(Stream, Bin)

setopts(_, Opts)

sockname(_)