summaryrefslogtreecommitdiff
path: root/src/mod_client_state.erl
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2018-01-23 10:54:52 +0300
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2018-01-23 10:54:52 +0300
commitba2b650464bd3aae2b6b0f3a3177476360cb6d08 (patch)
tree5d55501f76edcdcfe145ba0c3367a54ea0314e5c /src/mod_client_state.erl
parentDo not try to start ezlib application too frequently (diff)
Introduce new gen_mod callback: mod_options/1
The callback is supposed to provide known options and their default values, as long as the documentation. Passing default values into get_mod functions is now deprecated: all defaults should be provided by the Mod:mod_options/1 callback.
Diffstat (limited to 'src/mod_client_state.erl')
-rw-r--r--src/mod_client_state.erl28
1 files changed, 16 insertions, 12 deletions
diff --git a/src/mod_client_state.erl b/src/mod_client_state.erl
index bd3bf335..4e11ea8c 100644
--- a/src/mod_client_state.erl
+++ b/src/mod_client_state.erl
@@ -31,7 +31,7 @@
-behavior(gen_mod).
%% gen_mod callbacks.
--export([start/2, stop/1, reload/3, mod_opt_type/1, depends/2]).
+-export([start/2, stop/1, reload/3, mod_opt_type/1, depends/2, mod_options/1]).
%% ejabberd_hooks callbacks.
-export([filter_presence/1, filter_chat_states/1,
@@ -59,9 +59,9 @@
%%--------------------------------------------------------------------
-spec start(binary(), gen_mod:opts()) -> ok.
start(Host, Opts) ->
- QueuePresence = gen_mod:get_opt(queue_presence, Opts, true),
- QueueChatStates = gen_mod:get_opt(queue_chat_states, Opts, true),
- QueuePEP = gen_mod:get_opt(queue_pep, Opts, true),
+ QueuePresence = gen_mod:get_opt(queue_presence, Opts),
+ QueueChatStates = gen_mod:get_opt(queue_chat_states, Opts),
+ QueuePEP = gen_mod:get_opt(queue_pep, Opts),
if QueuePresence; QueueChatStates; QueuePEP ->
register_hooks(Host),
if QueuePresence ->
@@ -84,9 +84,9 @@ start(Host, Opts) ->
-spec stop(binary()) -> ok.
stop(Host) ->
- QueuePresence = gen_mod:get_module_opt(Host, ?MODULE, queue_presence, true),
- QueueChatStates = gen_mod:get_module_opt(Host, ?MODULE, queue_chat_states, true),
- QueuePEP = gen_mod:get_module_opt(Host, ?MODULE, queue_pep, true),
+ QueuePresence = gen_mod:get_module_opt(Host, ?MODULE, queue_presence),
+ QueueChatStates = gen_mod:get_module_opt(Host, ?MODULE, queue_chat_states),
+ QueuePEP = gen_mod:get_module_opt(Host, ?MODULE, queue_pep),
if QueuePresence; QueueChatStates; QueuePEP ->
unregister_hooks(Host),
if QueuePresence ->
@@ -109,9 +109,9 @@ stop(Host) ->
-spec reload(binary(), gen_mod:opts(), gen_mod:opts()) -> ok.
reload(Host, NewOpts, _OldOpts) ->
- QueuePresence = gen_mod:get_opt(queue_presence, NewOpts, true),
- QueueChatStates = gen_mod:get_opt(queue_chat_states, NewOpts, true),
- QueuePEP = gen_mod:get_opt(queue_pep, NewOpts, true),
+ QueuePresence = gen_mod:get_opt(queue_presence, NewOpts),
+ QueueChatStates = gen_mod:get_opt(queue_chat_states, NewOpts),
+ QueuePEP = gen_mod:get_opt(queue_pep, NewOpts),
if QueuePresence; QueueChatStates; QueuePEP ->
register_hooks(Host);
true ->
@@ -145,8 +145,12 @@ mod_opt_type(queue_presence) ->
mod_opt_type(queue_chat_states) ->
fun(B) when is_boolean(B) -> B end;
mod_opt_type(queue_pep) ->
- fun(B) when is_boolean(B) -> B end;
-mod_opt_type(_) -> [queue_presence, queue_chat_states, queue_pep].
+ fun(B) when is_boolean(B) -> B end.
+
+mod_options(_) ->
+ [{queue_presence, true},
+ {queue_chat_states, true},
+ {queue_pep, true}].
-spec depends(binary(), gen_mod:opts()) -> [{module(), hard | soft}].
depends(_Host, _Opts) ->