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 enum ComparisonType{
32 IntervalC,
33 MidC
34 };
35
36 enum OverlapType {
37 OTContainer,
38 OTContained,
39 OTOverlap,
40 OTNoOverlap
};
41
42 exception TimeUnavailable {};
43
44 interface UTO {
45 readonly attribute TimeBase::TimeT time;
46 readonly attribute TimeBase::InaccuracyT inaccuracy;
47 readonly attribute TimeBase::UtcT utc_time;
48 UTO absolute_time();
49 TimeComparison compare_time(
50 in ComparisonType comparison_type,
51 in CosTime::UTO uto
);
52 };
53
54 interface TimeService {
55 UTO universal_time()
56 raises(TimeUnavailable);
57 UTO secure_universal_time()
58 raises(TimeUnavailable);
59 UTO new_universal_time(
60 in TimeBase::TimeT time,
61 in TimeBase::InaccuracyT inaccuracy);
62 UTO uto_from_utc(
63 in TimeBase::UtcT utc);
64 };
65 };
66
67
68
69