summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/CosTimeBase.idl
blob: 59062c432df8f9f041be528c198b713a592ff211 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
//
// $Id$
//

#ifndef COS_TIME_BASE_IDL
#define COS_TIME_BASE_IDL

module TimeBase { 
  // = TITLE 
  //   COS Time Service basic types.
  //
  // = DESCRIPTION
  //   The standard CORBA Time Service defines a number of data
  //   structures to manipulate and express time.
  //   TAO does not implement this standard service (yet), but we use
  //   the standard types.
  //

#if 1
  // interim definition of type ulonglong pending the 
  // adoption of the type extension RFP. 
  // @@ We also need support for 64-bit integers in TAO IDL compiler. 
  struct ulonglong {
    unsigned long low;
    unsigned long high;
  };
  typedef ulonglong TimeT; 
#else
  typedef unsigned long long TimeT;
#endif
  // As yet the IDL compiler does not support 64-bit quantities, we
  // resort to the original definition of TimeT before long long
  // numbers were added to IDL.
  // 
  // Time in TimeT is expressed in units of 100 nano seconds (in
  // other words 10^-7 seconds), and are relative to October 15, 1582;
  // please read the spec for further details.

  typedef TimeT InaccuracyT; 
  // To express an error estimate for time.

  typedef short TdfT; 
  // Minutes of displacement from the Greenwich time.

  struct UtcT { 
    // = TITLE
    //   The UTC time structure.
    TimeT time;
    unsigned long inacclo;
    unsigned short inacchi;
    TdfT tdf;
  }; 

  struct IntervalT { 
    // = TITLE
    //   A time interval
    TimeT lower_bound; 
    TimeT upper_bound; 
  }; 
}; 

#endif /* COS_TIME_BASE_IDL */