diff options
Diffstat (limited to 'lib/cosTime/src/CosTime_UTO_impl.erl')
-rw-r--r-- | lib/cosTime/src/CosTime_UTO_impl.erl | 242 |
1 files changed, 0 insertions, 242 deletions
diff --git a/lib/cosTime/src/CosTime_UTO_impl.erl b/lib/cosTime/src/CosTime_UTO_impl.erl deleted file mode 100644 index 09f3eb2fdb..0000000000 --- a/lib/cosTime/src/CosTime_UTO_impl.erl +++ /dev/null @@ -1,242 +0,0 @@ -%%-------------------------------------------------------------------- -%% -%% %CopyrightBegin% -%% -%% Copyright Ericsson AB 2000-2016. All Rights Reserved. -%% -%% Licensed under the Apache License, Version 2.0 (the "License"); -%% you may not use this file except in compliance with the License. -%% You may obtain a copy of the License at -%% -%% http://www.apache.org/licenses/LICENSE-2.0 -%% -%% Unless required by applicable law or agreed to in writing, software -%% distributed under the License is distributed on an "AS IS" BASIS, -%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -%% See the License for the specific language governing permissions and -%% limitations under the License. -%% -%% %CopyrightEnd% -%% -%% -%%---------------------------------------------------------------------- -%% File : CosTime_UTO_impl.erl -%% Purpose : -%%---------------------------------------------------------------------- - --module('CosTime_UTO_impl'). - -%%--------------- INCLUDES ----------------------------------- --include("cosTimeApp.hrl"). - - -%%--------------- EXPORTS ------------------------------------ -%%--------------- External ----------------------------------- -%% Attributes (external) --export(['_get_time'/2, - '_get_inaccuracy'/2, - '_get_tdf'/2, - '_get_utc_time'/2]). - -%% Interface functions --export([absolute_time/2, compare_time/4]). --export([time_to_interval/3, interval/2]). - -%%--------------- gen_server specific exports ---------------- --export([handle_info/2, code_change/3]). --export([init/1, terminate/2]). - - -%% Data structures --record(state, {timer, utc}). -%% Data structures constructors --define(get_InitState(U, T), #state{timer = T, utc = U}). - -%% Data structures selectors --define(get_Time(S), (S#state.utc)#'TimeBase_UtcT'.time). --define(get_Inaccuracy(S), ?concat_TimeT((S#state.utc)#'TimeBase_UtcT'.inacchi, - (S#state.utc)#'TimeBase_UtcT'.inacclo)). --define(get_Tdf(S), (S#state.utc)#'TimeBase_UtcT'.tdf). --define(get_Utc(S), S#state.utc). --define(get_TimeObj(S), S#state.timer). - - -%%-----------------------------------------------------------% -%% 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) -> - {noreply, State}. - -%%----------------------------------------------------------% -%% function : init, terminate -%% Arguments: -%%----------------------------------------------------------- - -init([Utc, TimeObj]) -> - {ok, ?get_InitState(Utc, TimeObj)}. - -terminate(_Reason, _State) -> - ok. - -%%----------------------------------------------------------- -%%------------------------ attributes ----------------------- -%%----------------------------------------------------------- -%%----------------------------------------------------------% -%% Attribute: '_get_time' -%% Type : readonly -%% Returns : -%%----------------------------------------------------------- -'_get_time'(_OE_THIS, State) -> - {reply, ?get_Time(State), State}. - -%%----------------------------------------------------------% -%% Attribute: '_get_inaccuracy' -%% Type : readonly -%% Returns : -%%----------------------------------------------------------- -'_get_inaccuracy'(_OE_THIS, State) -> - {reply, ?get_Inaccuracy(State), State}. - -%%----------------------------------------------------------% -%% Attribute: '_get_tdf' -%% Type : readonly -%% Returns : -%%----------------------------------------------------------- -'_get_tdf'(_OE_THIS, State) -> - {reply, ?get_Tdf(State), State}. - -%%----------------------------------------------------------% -%% Attribute: '_get_utc_time' -%% Type : readonly -%% Returns : -%%----------------------------------------------------------- -'_get_utc_time'(_OE_THIS, State) -> - {reply, ?get_Utc(State), State}. - -%%----------------------------------------------------------- -%%------- Exported external functions ----------------------- -%%----------------------------------------------------------- -%%----------------------------------------------------------% -%% function : absolute_time -%% Arguments: - -%% Returns : UTO -%% NOTE : Return the base time to the relative time in the object. -%%----------------------------------------------------------- -absolute_time(_OE_THIS, State) -> - case catch 'CosTime_UTO':'_get_time'( - 'CosTime_TimeService':universal_time(?get_TimeObj(State)))+ - ?get_Time(State) of - UniTime when is_integer(UniTime) andalso UniTime =< ?max_TimeT -> - Utc=?get_Utc(State), - {reply, 'CosTime_UTO':oe_create([Utc#'TimeBase_UtcT'{time=UniTime}, - ?get_TimeObj(State)], - [{pseudo,true}|?CREATE_OPTS]), State}; - UniTime when is_integer(UniTime) -> - %% Oopss, overflow! - corba:raise(#'DATA_CONVERSION'{completion_status=?COMPLETED_NO}); - _ -> - corba:raise(#'INTERNAL'{completion_status=?COMPLETED_NO}) - end. - -%%----------------------------------------------------------% -%% function : compare_time -%% Arguments: Comparison_type - CosTime::ComparisonType -%% Uto - ObjRef -%% Returns : TimeComparison - 'TCEqualTo' | 'TCLessThan' | -%% 'TCGreaterThan' | 'TCIndeterminate' -%%----------------------------------------------------------- -compare_time(_OE_THIS, State, 'IntervalC', Uto) -> - ?time_TypeCheck(Uto, 'CosTime_UTO'), - case catch {'CosTime_UTO':'_get_time'(Uto), - 'CosTime_UTO':'_get_inaccuracy'(Uto)} of - {Time,Inaccuracy} when is_integer(Time) andalso is_integer(Inaccuracy) -> - OwnInacc = ?get_Inaccuracy(State), - if - ?get_Time(State)+OwnInacc < Time-Inaccuracy -> - {reply, 'TCLessThan', State}; - ?get_Time(State)-OwnInacc > Time+Inaccuracy -> - {reply, 'TCGreaterThan', State}; - ?get_Time(State) == Time, Inaccuracy==0, OwnInacc==0 -> - %% TimeService specification (july 1997, p14-7:2) states - %% that they are only equal if both UTO's Inaccuracy - %% equals zero. - {reply, 'TCEqualTo', State}; - true -> - {reply, 'TCIndeterminate', State} - end; - _ -> - corba:raise(#'BAD_PARAM'{completion_status=?COMPLETED_NO}) - end; -compare_time(_OE_THIS, State, 'MidC', Uto) -> - ?time_TypeCheck(Uto, 'CosTime_UTO'), - case catch 'CosTime_UTO':'_get_time'(Uto) of - Time when is_integer(Time) -> - if - ?get_Time(State) < Time -> - {reply, 'TCLessThan', State}; - ?get_Time(State) > Time -> - {reply, 'TCGreaterThan', State}; - true -> - {reply, 'TCEqualTo', State} - end; - _ -> - corba:raise(#'BAD_PARAM'{completion_status=?COMPLETED_NO}) - end; -compare_time(_OE_THIS, _State, _, _) -> - %% Comparison_type given not correct?! - corba:raise(#'BAD_PARAM'{completion_status=?COMPLETED_NO}). - -%%----------------------------------------------------------% -%% function : time_to_interval -%% Arguments: -%% Returns : TIO -%%----------------------------------------------------------- -time_to_interval(_OE_THIS, State, Uto) -> - ?time_TypeCheck(Uto, 'CosTime_UTO'), - case catch 'CosTime_UTO':'_get_time'(Uto) of - Time when is_integer(Time) -> - OwnTime = ?get_Time(State), - if - Time > OwnTime -> - {reply, 'CosTime_TIO':oe_create([#'TimeBase_IntervalT'{lower_bound=OwnTime, - upper_bound=Time}, - ?get_Tdf(State), - ?get_TimeObj(State)], - [{pseudo,true}|?CREATE_OPTS]), State}; - true -> - {reply, 'CosTime_TIO':oe_create([#'TimeBase_IntervalT'{lower_bound=Time, - upper_bound=OwnTime}, - ?get_Tdf(State), - ?get_TimeObj(State)], - [{pseudo,true}|?CREATE_OPTS]), State} - end; - _ -> - corba:raise(#'BAD_PARAM'{completion_status=?COMPLETED_NO}) - end. - -%%----------------------------------------------------------% -%% function : interval -%% Arguments: -%% Returns : TIO -%%----------------------------------------------------------- -interval(_OE_THIS, State) -> - Lower = ?get_Time(State) - ?get_Inaccuracy(State), - Upper = ?get_Time(State) + ?get_Inaccuracy(State), - {reply, 'CosTime_TIO':oe_create([#'TimeBase_IntervalT'{lower_bound=Lower, - upper_bound=Upper}, - ?get_Tdf(State), - ?get_TimeObj(State)], - [{pseudo,true}|?CREATE_OPTS]), State}. - - -%%--------------- LOCAL FUNCTIONS ---------------------------- - -%%--------------- MISC FUNCTIONS, E.G. DEBUGGING ------------- -%%--------------- END OF MODULE ------------------------------ - |