%%%-------------------------------------------------------------------
%%% File    : proxy_event_handler.erl
  Author   :  
%%% Description : 
%%%
  Created :   Fri Nov   6 12:29:07 PST 2009
%%%-------------------------------------------------------------------

-module (proxy_event_handler).

-include ("beehive.hrl").
-include ("common.hrl").

-behaviour(gen_event).

%% gen_event callbacks
-export([init/1, handle_event/2, handle_call/2, handle_info/2, terminate/2, code_change/3]).

%%====================================================================
%% gen_event callbacks
%%====================================================================
%%--------------------------------------------------------------------
%% Function: init(Args) -> {ok, State}
%% Description: Whenever a new event handler is added to an event manager,
%% this function is called to initialize the event handler.
%%--------------------------------------------------------------------
init([]) ->
  {ok, 500}.

%%--------------------------------------------------------------------
%% Function:
  handle_event(Event , State ) - > { ok , State } |
                                { swap_handler , Args1 , State1 , Mod2 , Args2 } |
%%                               remove_handler
%% Description:Whenever an event manager receives an event sent using
%% gen_event:notify/2 or gen_event:sync_notify/2, this function is called for
%% each installed event handler to handle the event.
%%--------------------------------------------------------------------
handle_event(_Event, State) ->
  {ok, State}.

%%--------------------------------------------------------------------
%% Function:
  handle_call(Request , State ) - > { ok , Reply , State } |
                                 { swap_handler , Reply , Args1 , State1 ,
%%                                  Mod2, Args2} |
%%                                {remove_handler, Reply}
%% Description: Whenever an event manager receives a request sent using
%% gen_event:call/3,4, this function is called for the specified event
%% handler to handle the request.
%%--------------------------------------------------------------------
handle_call(_Request, State) ->
  Reply = ok,
  {ok, Reply, State}.

%%--------------------------------------------------------------------
%% Function:
%% handle_info(Info, State) -> {ok, State} |
                              { swap_handler , Args1 , State1 , Mod2 , Args2 } |
%%                              remove_handler
%% Description: This function is called for each installed event handler when
%% an event manager receives any other message than an event or a synchronous
%% request (or a system message).
%%--------------------------------------------------------------------
handle_info(_Info, State) ->
  {ok, State}.

%%--------------------------------------------------------------------
%% Function: terminate(Reason, State) -> void()
%% Description:Whenever an event handler is deleted from an event manager,
%% this function is called. It should be the opposite of Module:init/1 and
%% do any necessary cleaning up.
%%--------------------------------------------------------------------
terminate(_Reason, _State) ->
  ok.

%%--------------------------------------------------------------------
  Function : code_change(OldVsn , State , Extra ) - > { ok , NewState }
%% Description: Convert process state when code is changed
%%--------------------------------------------------------------------
code_change(_OldVsn, State, _Extra) ->
  {ok, State}.
-------------------------------------------------------------------
 File    : proxy_event_handler.erl
 Description : 

-------------------------------------------------------------------
 gen_event callbacks
====================================================================
 gen_event callbacks
====================================================================
--------------------------------------------------------------------
 Function: init(Args) -> {ok, State}
 Description: Whenever a new event handler is added to an event manager,
 this function is called to initialize the event handler.
--------------------------------------------------------------------
--------------------------------------------------------------------
 Function:
                               remove_handler
 Description:Whenever an event manager receives an event sent using
 gen_event:notify/2 or gen_event:sync_notify/2, this function is called for
 each installed event handler to handle the event.
--------------------------------------------------------------------
--------------------------------------------------------------------
 Function:
                                  Mod2, Args2} |
                                {remove_handler, Reply}
 Description: Whenever an event manager receives a request sent using
 gen_event:call/3,4, this function is called for the specified event
 handler to handle the request.
--------------------------------------------------------------------
--------------------------------------------------------------------
 Function:
 handle_info(Info, State) -> {ok, State} |
                              remove_handler
 Description: This function is called for each installed event handler when
 an event manager receives any other message than an event or a synchronous
 request (or a system message).
--------------------------------------------------------------------
--------------------------------------------------------------------
 Function: terminate(Reason, State) -> void()
 Description:Whenever an event handler is deleted from an event manager,
 this function is called. It should be the opposite of Module:init/1 and
 do any necessary cleaning up.
--------------------------------------------------------------------
--------------------------------------------------------------------
 Description: Convert process state when code is changed
--------------------------------------------------------------------
  Author   :  
  Created :   Fri Nov   6 12:29:07 PST 2009

-module (proxy_event_handler).

-include ("beehive.hrl").
-include ("common.hrl").

-behaviour(gen_event).

-export([init/1, handle_event/2, handle_call/2, handle_info/2, terminate/2, code_change/3]).

init([]) ->
  {ok, 500}.

  handle_event(Event , State ) - > { ok , State } |
                                { swap_handler , Args1 , State1 , Mod2 , Args2 } |
handle_event(_Event, State) ->
  {ok, State}.

  handle_call(Request , State ) - > { ok , Reply , State } |
                                 { swap_handler , Reply , Args1 , State1 ,
handle_call(_Request, State) ->
  Reply = ok,
  {ok, Reply, State}.

                              { swap_handler , Args1 , State1 , Mod2 , Args2 } |
handle_info(_Info, State) ->
  {ok, State}.

terminate(_Reason, _State) ->
  ok.

  Function : code_change(OldVsn , State , Extra ) - > { ok , NewState }
code_change(_OldVsn, State, _Extra) ->
  {ok, State}.