aboutsummaryrefslogtreecommitdiff
path: root/src/gen_mod.erl
diff options
context:
space:
mode:
authorAlexey Shchepin <alexey@process-one.net>2003-01-24 20:18:33 +0000
committerAlexey Shchepin <alexey@process-one.net>2003-01-24 20:18:33 +0000
commit2aa3c1c7208823fedc77e7c8d1a50d2012676e78 (patch)
tree45e0eca88b360fd15f6a51cfb59f0b2b98e3dcca /src/gen_mod.erl
parent*** empty log message *** (diff)
*** empty log message ***
SVN Revision: 49
Diffstat (limited to 'src/gen_mod.erl')
-rw-r--r--src/gen_mod.erl58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/gen_mod.erl b/src/gen_mod.erl
new file mode 100644
index 000000000..6978dbe37
--- /dev/null
+++ b/src/gen_mod.erl
@@ -0,0 +1,58 @@
+%%%----------------------------------------------------------------------
+%%% File : gen_mod.erl
+%%% Author : Alexey Shchepin <alexey@sevcom.net>
+%%% Purpose :
+%%% Created : 24 Jan 2003 by Alexey Shchepin <alexey@sevcom.net>
+%%% Id : $Id$
+%%%----------------------------------------------------------------------
+
+-module(gen_mod).
+-author('alexey@sevcom.net').
+-vsn('$Revision$ ').
+
+-export([start_module/2,
+ stop_module/1,
+ get_opt/2,
+ get_opt/3]).
+
+-export([behaviour_info/1]).
+
+-include("ejabberd.hrl").
+
+
+behaviour_info(callbacks) ->
+ [{start, 1},
+ {stop, 0}];
+behaviour_info(Other) ->
+ undefined.
+
+
+start_module(Module, Opts) ->
+ case catch Module:start(Opts) of
+ {'EXIT', Reason} ->
+ ?ERROR_MSG("~p", [Reason]);
+ _ ->
+ ok
+ end.
+
+stop_module(Module) ->
+ Module:stop().
+
+
+get_opt(Opt, Opts) ->
+ case lists:keysearch(Opt, 1, Opts) of
+ false ->
+ % TODO: replace with more appropriate function
+ [] = {undefined_option, Opt};
+ {value, {_, Val}} ->
+ Val
+ end.
+
+get_opt(Opt, Opts, Default) ->
+ case lists:keysearch(Opt, 1, Opts) of
+ false ->
+ Default;
+ {value, {_, Val}} ->
+ Val
+ end.
+