1
2
3
4 #pragma prefix "hpi.uni-potsdam.de"
5
6 module TimeBase {
7
8 typedef unsigned long long TimeT;
9
10 typedef TimeT InaccuracyT;
11 struct UtcT {
12 TimeT time;
13 unsigned long inacclo;
14 unsigned short inacchi;
15 };
16
17 struct IntervalT {
18 TimeT lower_bound;
19 TimeT upper_bound;
20 };
21 };
22
23 module CosTime {
24
25 enum TimeComparison {
26 TCEqualTo,
27 TCLessThan,
28 TCGreaterThan,
29 TCIndeterminate
30 };
31
32 enum ComparisonType{
33 IntervalC,
34 MidC
35 };
36
37 enum OverlapType {
38 OTContainer,
39 OTContained,
40 OTOverlap,
41 OTNoOverlap
42 };
43
44 exception TimeUnavailable {};
45
46 interface UTO {
47 readonly attribute TimeBase::TimeT time;
48 readonly attribute TimeBase::InaccuracyT inaccuracy;
49 readonly attribute TimeBase::UtcT utc_time;
50 UTO absolute_time();
51 TimeComparison compare_time(
52 in ComparisonType comparison_type,
53 in CosTime::UTO uto
54 );
55 };
56
57 interface TimeService {
58 UTO universal_time()
59 raises(TimeUnavailable);
60 UTO secure_universal_time()
61 raises(TimeUnavailable);
62 UTO new_universal_time(
63 in TimeBase::TimeT time,
64 in TimeBase::InaccuracyT inaccuracy);
65 UTO uto_from_utc(
66 in TimeBase::UtcT utc);
67 };
68 };
69
70
71