diff options
author | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2017-04-14 13:57:52 +0300 |
---|---|---|
committer | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2017-04-14 13:57:52 +0300 |
commit | e40baf0bdaecf3206420fe8c16c33f2c166cb717 (patch) | |
tree | 75d9fe880e8257ea9fd20c095c252d7940cea89d /src/mod_carboncopy_mnesia.erl | |
parent | Bump xmpp dependency, it's required by previous commit (diff) |
Use cache in front of Redis/SQL RAM backends
Diffstat (limited to 'src/mod_carboncopy_mnesia.erl')
-rw-r--r-- | src/mod_carboncopy_mnesia.erl | 31 |
1 files changed, 13 insertions, 18 deletions
diff --git a/src/mod_carboncopy_mnesia.erl b/src/mod_carboncopy_mnesia.erl index 9c6a2ffa..62355165 100644 --- a/src/mod_carboncopy_mnesia.erl +++ b/src/mod_carboncopy_mnesia.erl @@ -27,7 +27,7 @@ -behaviour(mod_carboncopy). %% API --export([init/2, enable/4, disable/3, list/2]). +-export([init/2, enable/4, disable/3, list/2, use_cache/1]). -include("mod_carboncopy.hrl"). @@ -53,31 +53,26 @@ init(_Host, _Opts) -> mnesia:add_table_copy(carboncopy, node(), ram_copies). enable(LUser, LServer, LResource, NS) -> - try mnesia:dirty_write( - #carboncopy{us = {LUser, LServer}, - resource = LResource, - version = NS}) of - ok -> ok - catch _:Error -> - {error, Error} - end. + mnesia:dirty_write( + #carboncopy{us = {LUser, LServer}, + resource = LResource, + version = NS}). disable(LUser, LServer, LResource) -> ToDelete = mnesia:dirty_match_object( #carboncopy{us = {LUser, LServer}, resource = LResource, version = '_'}), - try lists:foreach(fun mnesia:dirty_delete_object/1, ToDelete) of - ok -> ok - catch _:Error -> - {error, Error} - end. + lists:foreach(fun mnesia:dirty_delete_object/1, ToDelete). list(LUser, LServer) -> - mnesia:dirty_select( - carboncopy, - [{#carboncopy{us = {LUser, LServer}, resource = '$2', version = '$3'}, - [], [{{'$2','$3'}}]}]). + {ok, mnesia:dirty_select( + carboncopy, + [{#carboncopy{us = {LUser, LServer}, resource = '$2', version = '$3'}, + [], [{{'$2','$3', node()}}]}])}. + +use_cache(_LServer) -> + false. %%%=================================================================== %%% Internal functions |