emqtt_frame (emqtt v1.15.1)
View SourceSummary
Types
-type cont_fun() :: fun((binary()) -> parse_result()).
-type packet() :: #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()}.
-type parse_result() :: {more, cont_fun()} | {ok, #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}, binary(), parse_state()}.
-type version() :: 3 | 4 | 5.
Functions
-spec initial_parse_state() -> parse_state().
-spec initial_parse_state(options()) -> parse_state().
-spec parse(binary()) -> parse_result().
-spec parse(binary(), parse_state()) -> parse_result().
-spec serialize(#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}) -> iodata().
-spec serialize(#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}, version()) -> iodata().