emqx_retainer.hrl 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. %%--------------------------------------------------------------------
  2. %% Copyright (c) 2020-2023 EMQ Technologies Co., Ltd. All Rights Reserved.
  3. %%
  4. %% Licensed under the Apache License, Version 2.0 (the "License");
  5. %% you may not use this file except in compliance with the License.
  6. %% You may obtain a copy of the License at
  7. %%
  8. %% http://www.apache.org/licenses/LICENSE-2.0
  9. %%
  10. %% Unless required by applicable law or agreed to in writing, software
  11. %% distributed under the License is distributed on an "AS IS" BASIS,
  12. %% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. %% See the License for the specific language governing permissions and
  14. %% limitations under the License.
  15. %%--------------------------------------------------------------------
  16. -include_lib("emqx/include/emqx.hrl").
  17. -define(APP, emqx_retainer).
  18. -define(TAB_MESSAGE, emqx_retainer_message).
  19. -define(TAB_INDEX, emqx_retainer_index).
  20. -define(TAB_INDEX_META, emqx_retainer_index_meta).
  21. -define(RETAINER_SHARD, emqx_retainer_shard).
  22. -type topic() :: binary().
  23. -type payload() :: binary().
  24. -type message() :: #message{}.
  25. -type context() :: #{
  26. context_id := pos_integer(),
  27. atom() => term()
  28. }.
  29. -define(DELIVER_SEMAPHORE, deliver_remained_quota).
  30. -type semaphore() :: ?DELIVER_SEMAPHORE.
  31. -type cursor() :: undefined | term().
  32. -type result() :: term().
  33. -define(SHARED_CONTEXT_TAB, emqx_retainer_ctx).
  34. -record(shared_context, {key :: atom(), value :: term()}).
  35. -type shared_context_key() :: ?DELIVER_SEMAPHORE.
  36. -type backend() :: emqx_retainer_storage_mnesia.