00001 #ifndef COSTIME_IDL
00002 #define COSTIME_IDL
00003
00004 #include <TimeBase.idl>
00005
00006 #pragma prefix "omg.org"
00007
00013 module CosTime
00014 {
00015 enum TimeComparison
00016 {
00017 TCEqualTo,
00018 TCLessThan,
00019 TCGreaterThan,
00020 TCIndeterminate
00021 };
00022
00023 enum ComparisonType
00024 {
00025 IntervalC,
00026 MidC
00027 };
00028
00029 enum OverlapType
00030 {
00031 OTContainer,
00032 OTContained,
00033 OTOverlap,
00034 OTNoOverlap
00035 };
00036
00037 exception TimeUnavailable {};
00038 interface TIO;
00039
00044 interface UTO
00045 {
00051 readonly attribute TimeBase::TimeT time;
00052
00057 readonly attribute TimeBase::InaccuracyT inaccuracy;
00058
00064 readonly attribute TimeBase::TdfT tdf;
00065
00070 readonly attribute TimeBase::UtcT utc_time;
00071
00077 UTO absolute_time();
00078
00090 TimeComparison compare_time(in ComparisonType comparison_type,
00091 in UTO ut);
00092
00099 TIO time_to_interval(in UTO ut);
00100
00106 TIO interval();
00107 };
00108
00113 interface TIO
00114 {
00118 readonly attribute TimeBase::IntervalT time_interval;
00119
00129 OverlapType spans (in UTO time, out TIO overlap);
00130
00140 OverlapType overlaps (in TIO interval, out TIO overlap);
00141
00148 UTO time ();
00149 };
00150
00155 interface TimeService
00156 {
00163 UTO universal_time()
00164 raises(TimeUnavailable);
00165
00172 UTO secure_universal_time()
00173 raises(TimeUnavailable);
00174
00182 UTO new_universal_time(in TimeBase::TimeT time,
00183 in TimeBase::InaccuracyT inaccuracy,
00184 in TimeBase::TdfT tdf);
00185
00191 UTO uto_from_utc(in TimeBase::UtcT utc);
00192
00199 TIO new_interval(in TimeBase::TimeT lower, in TimeBase::TimeT upper);
00200 };
00201 };
00202
00203 #endif