| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- %%--------------------------------------------------------------------
- %% Copyright (c) 2017-2021 EMQ Technologies Co., Ltd. All Rights Reserved.
- %%
- %% Licensed under the Apache License, Version 2.0 (the "License");
- %% you may not use this file except in compliance with the License.
- %% You may obtain a copy of the License at
- %%
- %% http://www.apache.org/licenses/LICENSE-2.0
- %%
- %% Unless required by applicable law or agreed to in writing, software
- %% distributed under the License is distributed on an "AS IS" BASIS,
- %% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- %% See the License for the specific language governing permissions and
- %% limitations under the License.
- %%--------------------------------------------------------------------
- -ifndef(EMQ_X_HRL).
- -define(EMQ_X_HRL, true).
- %%--------------------------------------------------------------------
- %% Common
- %%--------------------------------------------------------------------
- -define(Otherwise, true).
- %%--------------------------------------------------------------------
- %% Banner
- %%--------------------------------------------------------------------
- -define(PROTOCOL_VERSION, "MQTT/5.0").
- -define(ERTS_MINIMUM_REQUIRED, "10.0").
- %%--------------------------------------------------------------------
- %% Configs
- %%--------------------------------------------------------------------
- -define(NO_PRIORITY_TABLE, none).
- %%--------------------------------------------------------------------
- %% Topics' prefix: $SYS | $queue | $share
- %%--------------------------------------------------------------------
- %% System topic
- -define(SYSTOP, <<"$SYS/">>).
- %% Queue topic
- -define(QUEUE, <<"$queue/">>).
- %%--------------------------------------------------------------------
- %% Message and Delivery
- %%--------------------------------------------------------------------
- -record(subscription, {topic, subid, subopts}).
- %% See 'Application Message' in MQTT Version 5.0
- -record(message, {
- %% Global unique message ID
- id :: binary(),
- %% Message QoS
- qos = 0,
- %% Message from
- from :: atom() | binary(),
- %% Message flags
- flags = #{} :: emqx_types:flags(),
- %% Message headers. May contain any metadata. e.g. the
- %% protocol version number, username, peerhost or
- %% the PUBLISH properties (MQTT 5.0).
- headers = #{} :: emqx_types:headers(),
- %% Topic that the message is published to
- topic :: emqx_types:topic(),
- %% Message Payload
- payload :: emqx_types:payload(),
- %% Timestamp (Unit: millisecond)
- timestamp :: integer()
- }).
- -record(delivery, {
- sender :: pid(), %% Sender of the delivery
- message :: #message{} %% The message delivered
- }).
- %%--------------------------------------------------------------------
- %% Route
- %%--------------------------------------------------------------------
- -record(route, {
- topic :: binary(),
- dest :: node() | {binary(), node()}
- }).
- %%--------------------------------------------------------------------
- %% Plugin
- %%--------------------------------------------------------------------
- -record(plugin, {
- name :: atom(),
- dir :: string() | undefined,
- descr :: string(),
- vendor :: string() | undefined,
- active = false :: boolean(),
- info = #{} :: map(),
- type :: atom()
- }).
- %%--------------------------------------------------------------------
- %% Command
- %%--------------------------------------------------------------------
- -record(command, {
- name :: atom(),
- action :: atom(),
- args = [] :: list(),
- opts = [] :: list(),
- usage :: string(),
- descr :: string()
- }).
- %%--------------------------------------------------------------------
- %% Banned
- %%--------------------------------------------------------------------
- -record(banned, {
- who :: {clientid, binary()}
- | {peerhost, inet:ip_address()}
- | {username, binary()}
- | {ip_address, inet:ip_address()},
- by :: binary(),
- reason :: binary(),
- at :: integer(),
- until :: integer()
- }).
- -endif.
|