./ct_report/coverage/ejabberd_sm_backend.COVER.html

1 %% Generic module to access SM backend modules
2 -module(ejabberd_sm_backend).
3
4 -callback init(list()) ->
5 any().
6 -callback get_sessions() ->
7 [ejabberd_sm:session()].
8 -callback get_sessions(jid:server()) ->
9 [ejabberd_sm:session()].
10 -callback get_sessions(jid:user(), jid:server()) ->
11 [ejabberd_sm:session()].
12 -callback get_sessions(jid:user(), jid:server(), jid:resource()) ->
13 [ejabberd_sm:session()].
14 -callback create_session(jid:luser(),
15 jid:lserver(),
16 jid:lresource(),
17 ejabberd_sm:session()) ->
18 ok | {error, term()}.
19 -callback update_session(jid:luser(),
20 jid:lserver(),
21 jid:lresource(),
22 ejabberd_sm:session()) ->
23 ok | {error, term()}.
24 -callback delete_session(ejabberd_sm:sid(),
25 jid:user(),
26 jid:server(),
27 jid:resource()) -> ok.
28 -callback cleanup(Node :: atom()) -> any().
29 -callback total_count() -> integer().
30 -callback unique_count() -> integer().
31
32 -export([init/1,
33 get_sessions/0, get_sessions/1, get_sessions/2, get_sessions/3,
34 create_session/4, update_session/4, delete_session/4, cleanup/1,
35 total_count/0, unique_count/0]).
36
37 -ignore_xref([cleanup/1, behaviour_info/1]).
38
39 -define(MAIN_MODULE, ejabberd_sm).
40
41 -spec init(list()) -> any().
42 init(Opts) ->
43 82 Args = [Opts],
44 82 mongoose_backend:init(global, ?MAIN_MODULE, [], Opts),
45 82 mongoose_backend:call(global, ?MAIN_MODULE, ?FUNCTION_NAME, Args).
46
47 -spec get_sessions() -> [ejabberd_sm:sessions()].
48 get_sessions() ->
49 86 mongoose_backend:call(global, ?MAIN_MODULE, ?FUNCTION_NAME, []).
50
51 -spec get_sessions(jid:server()) -> [ejabberd_sm:sessions()].
52 get_sessions(Server) ->
53 20 Args = [Server],
54 20 mongoose_backend:call(global, ?MAIN_MODULE, ?FUNCTION_NAME, Args).
55
56 -spec get_sessions(jid:user(), jid:server()) ->
57 [ejabberd_sm:session()].
58 get_sessions(User, Server) ->
59 19990 Args = [User, Server],
60 19990 mongoose_backend:call(global, ?MAIN_MODULE, ?FUNCTION_NAME, Args).
61
62 -spec get_sessions(jid:user(),
63 jid:server(),
64 jid:resource()) ->
65 [ejabberd_sm:session()].
66 get_sessions(User, Server, Resource) ->
67 19756 Args = [User, Server, Resource],
68 19756 mongoose_backend:call(global, ?MAIN_MODULE, ?FUNCTION_NAME, Args).
69
70 -spec create_session(User :: jid:user(),
71 Server :: jid:server(),
72 Resource :: jid:resource(),
73 Session :: ejabberd_sm:session()) -> ok | {error, term()}.
74 create_session(User, Server, Resource, Session) ->
75 5474 Args = [User, Server, Resource, Session],
76 5474 mongoose_backend:call(global, ?MAIN_MODULE, ?FUNCTION_NAME, Args).
77
78 -spec update_session(User :: jid:luser(),
79 Server :: jid:lserver(),
80 Resource :: jid:lresource(),
81 Session :: ejabberd_sm:session()) -> ok | {error, term()}.
82 update_session(User, Server, Resource, Session) ->
83 353 Args = [User, Server, Resource, Session],
84 353 mongoose_backend:call(global, ?MAIN_MODULE, ?FUNCTION_NAME, Args).
85
86 -spec delete_session(Sid :: ejabberd_sm:sid(),
87 User :: jid:user(),
88 Server :: jid:server(),
89 Resource :: jid:resource()) -> ok.
90 delete_session(Sid, User, Server, Resource) ->
91 2714 Args = [Sid, User, Server, Resource],
92 2714 mongoose_backend:call(global, ?MAIN_MODULE, ?FUNCTION_NAME, Args).
93
94 -spec cleanup(Node :: atom()) -> any().
95 cleanup(Node) ->
96
:-(
Args = [Node],
97
:-(
mongoose_backend:call(global, ?MAIN_MODULE, ?FUNCTION_NAME, Args).
98
99 -spec total_count() -> integer().
100 total_count() ->
101 96 mongoose_backend:call(global, ?MAIN_MODULE, ?FUNCTION_NAME, []).
102
103 -spec unique_count() -> integer().
104 unique_count() ->
105 94 mongoose_backend:call(global, ?MAIN_MODULE, ?FUNCTION_NAME, []).
Line Hits Source