Add 'message' and 'delivery' record
This commit is contained in:
parent
d7eae533ac
commit
aef5a20697
|
@ -26,6 +26,58 @@
|
||||||
|
|
||||||
%%-define(ERTS_MINIMUM, "9.0").
|
%%-define(ERTS_MINIMUM, "9.0").
|
||||||
|
|
||||||
|
%%--------------------------------------------------------------------
|
||||||
|
%% Message and Delivery
|
||||||
|
%%--------------------------------------------------------------------
|
||||||
|
|
||||||
|
-type(message_id() :: binary() | undefined).
|
||||||
|
|
||||||
|
-type(protocol() :: mqtt | 'mqtt-sn' | coap | stomp | atom()).
|
||||||
|
|
||||||
|
-type(message_from() :: #{node := atom(),
|
||||||
|
clientid := binary(),
|
||||||
|
protocol := protocol(),
|
||||||
|
connector => atom(),
|
||||||
|
peername => {inet:ip_address(), inet:port_number()},
|
||||||
|
username => binary(),
|
||||||
|
atom() => term()}).
|
||||||
|
|
||||||
|
-type(message_flags() :: #{dup => boolean(), %% Dup flag
|
||||||
|
qos => 0 | 1 | 2, %% QoS
|
||||||
|
sys => boolean(), %% $SYS flag
|
||||||
|
retain => boolean(), %% Retain flag
|
||||||
|
durable => boolean(), %% Durable flag
|
||||||
|
atom() => boolean()}).
|
||||||
|
|
||||||
|
-type(message_headers() :: #{packet_id => pos_integer(),
|
||||||
|
priority => pos_integer(),
|
||||||
|
expiry => integer(), %% Time to live
|
||||||
|
atom() => term()}).
|
||||||
|
|
||||||
|
%% See 'Application Message' in MQTT Version 5.0
|
||||||
|
-record(message,
|
||||||
|
{ id :: message_id(), %% Global unique id
|
||||||
|
from :: message_from(), %% Message from
|
||||||
|
sender :: pid(), %% The pid of the sender/publisher
|
||||||
|
flags :: message_flags(), %% Message flags
|
||||||
|
headers :: message_headers() %% Message headers
|
||||||
|
topic :: binary(), %% Message topic
|
||||||
|
properties :: map(), %% Message user properties
|
||||||
|
payload :: binary(), %% Message payload
|
||||||
|
timestamp :: erlang:timestamp() %% Timestamp
|
||||||
|
}).
|
||||||
|
|
||||||
|
-type(message() :: #message{}).
|
||||||
|
|
||||||
|
-record(delivery,
|
||||||
|
{ %sender :: pid(), %% The pid of the sender/publisher
|
||||||
|
message :: message(), %% Message
|
||||||
|
flows :: list()
|
||||||
|
}).
|
||||||
|
|
||||||
|
-type(delivery() :: #delivery{}).
|
||||||
|
|
||||||
|
|
||||||
%%--------------------------------------------------------------------
|
%%--------------------------------------------------------------------
|
||||||
%% Sys/Queue/Share Topics' Prefix
|
%% Sys/Queue/Share Topics' Prefix
|
||||||
%%--------------------------------------------------------------------
|
%%--------------------------------------------------------------------
|
||||||
|
|
Loading…
Reference in New Issue