./ct_report/coverage/xmpp_router.COVER.html

1 %%%-------------------------------------------------------------------
2 %%% @doc
3 %%% A behaviour which should be used by all modules being used in a
4 %%% routing pipeline. The pipeline, manage by ejabberd_router:route
5 %%% func, calls filter and route for each successful module.
6 %%%
7 %%% Module has to implement both functions, can be a no-op just returning
8 %%% a tuple of its args.
9 %%% @end
10 %%%-------------------------------------------------------------------
11 -module(xmpp_router).
12
13 -callback route(From :: jid:jid(), To :: jid:jid(),
14 Acc :: mongoose_acc:t(), Packet :: exml:element()) ->
15 {done, mongoose_acc:t()} | {jid:jid(), jid:jid(), mongoose_acc:t(), exml:element()}.
16
17 -callback filter(From :: jid:jid(), To :: jid:jid(),
18 Acc :: mongoose_acc:t(), Packet :: exml:element()) ->
19 drop | {jid:jid(), jid:jid(), mongoose_acc:t(), exml:element()}.
20
21
22 -export([call_route/5, call_filter/5]).
23
24 -spec call_route(Module :: module(), From :: jid:jid(),
25 To :: jid:jid(), Acc :: mongoose_acc:t(), Packet :: exml:element()) ->
26 {done, mongoose_acc:t()} | {jid:jid(), jid:jid(), mongoose_acc:t(), exml:element()}.
27 call_route(Module, From, To, Acc, Packet) ->
28 39208 Module:route(From, To, Acc, Packet).
29
30 -spec call_filter(Module :: module(), From :: jid:jid(),
31 To :: jid:jid(), Acc :: mongoose_acc:t(), Packet :: exml:element()) ->
32 drop | {jid:jid(), jid:jid(), mongoose_acc:t(), exml:element()}.
33 call_filter(Module, From, To, Acc, Packet) ->
34 39588 Module:filter(From, To, Acc, Packet).
Line Hits Source