diff options
author | Erlang/OTP <otp@erlang.org> | 2009-11-20 14:54:40 +0000 |
---|---|---|
committer | Erlang/OTP <otp@erlang.org> | 2009-11-20 14:54:40 +0000 |
commit | 84adefa331c4159d432d22840663c38f155cd4c1 (patch) | |
tree | bff9a9c66adda4df2106dfd0e5c053ab182a12bd /lib/cosTime/src/CosTimerEvent_TimerEventService_impl.erl | |
download | otp-84adefa331c4159d432d22840663c38f155cd4c1.tar.gz otp-84adefa331c4159d432d22840663c38f155cd4c1.tar.bz2 otp-84adefa331c4159d432d22840663c38f155cd4c1.zip |
The R13B03 release.OTP_R13B03
Diffstat (limited to 'lib/cosTime/src/CosTimerEvent_TimerEventService_impl.erl')
-rw-r--r-- | lib/cosTime/src/CosTimerEvent_TimerEventService_impl.erl | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/lib/cosTime/src/CosTimerEvent_TimerEventService_impl.erl b/lib/cosTime/src/CosTimerEvent_TimerEventService_impl.erl new file mode 100644 index 0000000000..b324ecbecd --- /dev/null +++ b/lib/cosTime/src/CosTimerEvent_TimerEventService_impl.erl @@ -0,0 +1,118 @@ +%%-------------------------------------------------------------------- +%% +%% %CopyrightBegin% +%% +%% Copyright Ericsson AB 2000-2009. All Rights Reserved. +%% +%% The contents of this file are subject to the Erlang Public License, +%% Version 1.1, (the "License"); you may not use this file except in +%% compliance with the License. You should have received a copy of the +%% Erlang Public License along with this software. If not, it can be +%% retrieved online at http://www.erlang.org/. +%% +%% Software distributed under the License is distributed on an "AS IS" +%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +%% the License for the specific language governing rights and limitations +%% under the License. +%% +%% %CopyrightEnd% +%% +%% +%%---------------------------------------------------------------------- +%% File : CosTimerEvent_TimerEventService_impl.erl +%% Purpose : +%%---------------------------------------------------------------------- + +-module('CosTimerEvent_TimerEventService_impl'). + +%%--------------- INCLUDES ----------------------------------- +-include("cosTimeApp.hrl"). + + +%%--------------- EXPORTS ------------------------------------ +%%--------------- External ----------------------------------- +%% Interface functions +-export([register/4, unregister/3, event_time/3]). + +%%--------------- gen_server specific exports ---------------- +-export([handle_info/2, code_change/3]). +-export([init/1, terminate/2]). + + +%% Data structures +-record(state, {timer}). +%% Data structures constructors +-define(get_InitState(T), + #state{timer=T}). + +%% Data structures selectors +-define(get_TimerObj(S), S#state.timer). + +%% Data structures modifiers + +%% MISC + +%%-----------------------------------------------------------% +%% function : handle_info, code_change +%% Arguments: +%% Returns : +%% Effect : Functions demanded by the gen_server module. +%%------------------------------------------------------------ + +code_change(_OldVsn, State, _Extra) -> + {ok, State}. + +handle_info(_Info, State) -> + ?debug_print("INFO: ~p~n", [_Info]), + {noreply, State}. + +%%----------------------------------------------------------% +%% function : init, terminate +%% Arguments: +%%----------------------------------------------------------- + +init([Timer]) -> + process_flag(trap_exit, true), + timer:start(), + {ok, ?get_InitState(Timer)}. + +terminate(_Reason, _State) -> + ok. + +%%----------------------------------------------------------- +%%------- Exported external functions ----------------------- +%%----------------------------------------------------------- +%%----------------------------------------------------------% +%% function : register +%% Arguments: EventInterface - CosEventComm::PushConsumer +%% Data - #any +%% Returns : TimerEventHandler - objref# +%%----------------------------------------------------------- +register(OE_THIS, State, EventInterface, Data) -> + {reply, + cosTime:start_event_handler([OE_THIS, self(),EventInterface, Data, + ?get_TimerObj(State)]), + State}. + +%%----------------------------------------------------------% +%% function : unregister +%% Arguments: TimerEventHandler - objref# +%% Returns : ok +%%----------------------------------------------------------- +unregister(_OE_THIS, State, TimerEventHandler) -> + catch corba:dispose(TimerEventHandler), + {reply, ok, State}. + +%%----------------------------------------------------------% +%% function : event_time +%% Arguments: TimerEvent - #'CosTimerEvent_TimerEventT'{utc, event_data} +%% Returns : CosTime::UTO +%%----------------------------------------------------------- +event_time(_OE_THIS, State, #'CosTimerEvent_TimerEventT'{utc=Utc}) -> + {reply, 'CosTime_UTO':oe_create([Utc],[{pseudo,true}]), State}. + + +%%--------------- LOCAL FUNCTIONS ---------------------------- + +%%--------------- MISC FUNCTIONS, E.G. DEBUGGING ------------- +%%--------------- END OF MODULE ------------------------------ |