msg store

This commit is contained in:
Ery Lee 2015-04-16 09:29:53 +08:00
parent b7a2b66db0
commit a899dada12
4 changed files with 18 additions and 21 deletions

View File

@ -87,7 +87,7 @@ init_tables() ->
%%------------------------------------------------------------------------------
create_tables() ->
%% trie tree tables
%%TODO: should use module 'mnesia_create' attribute...
%%TODO: should use module 'boot_mnesia' attribute...
ok = emqttd_trie:mnesia(create),
ok = emqttd_pubsub:mnesia(create),
%% TODO: retained messages, this table should not be copied...

View File

@ -20,13 +20,11 @@
%%% SOFTWARE.
%%%-----------------------------------------------------------------------------
%%% @doc
%%% emqttd retained messages.
%%% MQTT retained message storage.
%%%
%%% TODO: need to redesign later.
%%%
%%% @end
%%%-----------------------------------------------------------------------------
-module(emqttd_retained).
-module(emqttd_msg_store).
-author('feng@slimpp.io').
@ -35,23 +33,22 @@
%% Mnesia callbacks
-export([mnesia/1]).
-mnesia_create({mnesia, [create]}).
-mnesia_replicate({mnesia, [replicate]}).
-boot_mnesia({mnesia, [boot]}).
-copy_mnesia({mnesia, [copy]}).
%% API Function Exports
-export([retain/1, redeliver/2]).
-export([retain/1, read/2, delete/1]).
mnesia(create) ->
mnesia(boot) ->
ok = emqttd_mnesia:create_table(message, [
{type, ordered_set},
{ram_copies, [node()]},
{record_name, mqtt_message},
{attributes, record_info(fields, mqtt_message)}]);
mnesia(replicate) ->
mnesia(copy) ->
ok = emqttd_mnesia:copy_table(message).
%% @doc retain message.
-spec retain(mqtt_message()) -> ok | ignore.
retain(#mqtt_message{retain = false}) -> ignore;

View File

@ -41,8 +41,8 @@
%% Mnesia Callbacks
-export([mnesia/1]).
-mnesia_create({mnesia, [create]}).
-mnesia_replicate({mnesia, [replicate]}).
-boot_mnesia({mnesia, [boot]}).
-copy_mnesia({mnesia, [copy]}).
%% API Exports
-export([start_link/0]).
@ -63,7 +63,7 @@
%%%=============================================================================
%%% Mnesia callbacks
%%%=============================================================================
mnesia(create) ->
mnesia(boot) ->
%% topic table
ok = emqttd_mnesia:create_table(topic, [
{type, bag},
@ -79,7 +79,7 @@ mnesia(create) ->
{index, [subpid]},
{local_content, true}]);
mnesia(replicate) ->
mnesia(copy) ->
ok = emqttd_mnesia:copy_table(topic),
ok = emqttd_mnesia:copy_table(subscriber).

View File

@ -33,8 +33,8 @@
%% Mnesia Callbacks
-export([mnesia/1]).
-mnesia_create({mnesia, [create]}).
-mnesia_replicate({mnesia, [replicate]}).
-boot_mnesia({mnesia, [boot]}).
-copy_mnesia({mnesia, [copy]}).
%% Trie API
-export([insert/1, find/1, delete/1]).
@ -67,8 +67,8 @@
%%
%% @end
%%------------------------------------------------------------------------------
-spec mnesia(create | replicate) -> ok.
mnesia(create) ->
-spec mnesia(boot | copy) -> ok.
mnesia(boot) ->
%% trie tree tables
ok = emqttd_mnesia:create_table(trie, [
{ram_copies, [node()]},
@ -85,7 +85,7 @@ mnesia(create) ->
%%
%% @end
%%------------------------------------------------------------------------------
mnesia(replicate) ->
mnesia(copy) ->
ok = emqttd_mnesia:copy_table(trie),
ok = emqttd_mnesia:copy_table(trie_node).