./ct_report/coverage/mod_keystore_backend.COVER.html

1 %% Just a proxy interface module between the main mod_keystore module and
2 %% the backend modules (i.e. mod_keystore_mnesia...).
3 -module(mod_keystore_backend).
4
5 -export([init/2, init_ram_key/2, get_key/1]).
6
7 -define(MAIN_MODULE, mod_keystore).
8
9 -callback init(mongooseim:host_type(), gen_mod:module_opts()) -> ok.
10
11 %% Cluster members race to decide whose key gets stored in the distributed database.
12 %% That's why ProposedKey (the key this cluster member tries to propagate to other nodes)
13 %% might not be the same as ActualKey (key of the member who will have won the race).
14 -callback init_ram_key(ProposedKey) -> Result when
15 ProposedKey :: mod_keystore:key(),
16 Result :: {ok, ActualKey} | {error, any()},
17 ActualKey :: mod_keystore:key().
18
19 -callback get_key(ID :: mod_keystore:key_id()) -> mod_keystore:key_list().
20
21 -spec init(mongooseim:host_type(), gen_mod:module_opts()) -> ok.
22 init(HostType, Opts) ->
23 1 mongoose_backend:init(HostType, ?MAIN_MODULE, [], Opts),
24 1 Args = [HostType, Opts],
25 1 mongoose_backend:call(HostType, ?MAIN_MODULE, ?FUNCTION_NAME, Args).
26
27 %% Cluster members race to decide whose key gets stored in the distributed database.
28 %% That's why ProposedKey (the key this cluster member tries to propagate to other nodes)
29 %% might not be the same as ActualKey (key of the member who will have won the race).
30 -spec init_ram_key(HostType, ProposedKey) -> Result when
31 HostType :: mongooseim:host_type(),
32 ProposedKey :: mod_keystore:key(),
33 Result :: {ok, ActualKey} | {error, any()},
34 ActualKey :: mod_keystore:key().
35 init_ram_key(HostType, ProposedKey) ->
36 2 Args = [ProposedKey],
37 2 mongoose_backend:call(HostType, ?MAIN_MODULE, ?FUNCTION_NAME, Args).
38
39 -spec get_key(ID :: mod_keystore:key_id()) -> mod_keystore:key_list().
40 get_key({_, HostType} = ID) ->
41 25 Args = [ID],
42 25 mongoose_backend:call(HostType, ?MAIN_MODULE, ?FUNCTION_NAME, Args).
Line Hits Source