blob: 91134daf4269d0ca890c261fb21c30de23279826 [file] [log] [blame]
-module(config_listener).
-behaviour(gen_event).
%% Public interface
-export([start/1]).
-export([behaviour_info/1]).
%% Required gen_event interface
-export([init/1, handle_event/2, handle_call/2, handle_info/2, terminate/2,
code_change/3]).
behaviour_info(callbacks) ->
[{handle_config_change/4}];
behaviour_info(_) ->
undefined.
start(Module) ->
gen_event:add_sup_handler(config_event, {?MODULE, Module}, [Module]).
init(Module) ->
{ok, Module}.
handle_event({config_change, Sec, Key, Value, Persist}, Module) ->
Module:handle_config_change(Sec, Key, Value, Persist).
handle_call(_Request, Module) ->
{ok, ignored, St}.
handle_info(_Info, Module) ->
{ok, St}.
terminate(_Reason, Module) ->
ok.
code_change(_OldVsn, Module, _Extra) ->
{ok, St}.