00001 // -*- IDL -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file TimeBase.pidl 00006 * 00007 * $Id: TimeBase.pidl 81200 2008-04-01 13:03:30Z johnnyw $ 00008 * 00009 * This file is used to generate the code in TimeBase{C,S,S_T}.{h,i,cpp} 00010 * 00011 * The command used to generate code from this file is: 00012 * 00013 * tao_idl.exe 00014 * -o orig -GA -SS -Sci 00015 * -Wb,export_macro=TAO_Export 00016 * -Wb,export_include=tao/TAO_Export.h 00017 * -Wb,pre_include="ace/pre.h" 00018 * -Wb,post_include="ace/post.h" 00019 * TimeBase.pidl 00020 * 00021 * After that the files are ready for use 00022 */ 00023 //============================================================================= 00024 00025 #ifndef TIME_BASE_PIDL 00026 #define TIME_BASE_PIDL 00027 00028 #pragma prefix "omg.org" 00029 00030 /** 00031 * @brief COS Time Service basic types. 00032 * 00033 * 00034 * The standard CORBA Time Service defines a number of data structures 00035 * to manipulate and express time. 00036 * Over time these data structures have found their way into core 00037 * components of CORBA, such as CORBA Messaging, RT CORBA, etc. 00038 * 00039 */ 00040 module TimeBase 00041 { 00042 /// Time in TimeT is expressed in units of 100 nano seconds 00043 /** 00044 * In other words each TimeT is 10^-7 seconds. 00045 * When used for absolute time 0 is to October 15, 1582. Please read 00046 * the spec for further details. 00047 */ 00048 typedef unsigned long long TimeT; 00049 00050 /// To express an error estimate for time. 00051 typedef TimeT InaccuracyT; 00052 00053 /// Minutes of displacement from the Greenwich time. 00054 typedef short TdfT; 00055 00056 /** 00057 * @brief A timestamp in UTC time 00058 * 00059 * The inaccuracy is packed into inacclo & inacchi. 00060 * tdf holds the time displacement factor. 00061 * 00062 * There are a total of 16 octets in this struct. 00063 * 00064 * @todo What is exactly the range of time here? 00065 * Is it [time-inacclo,time+inacchi]? 00066 */ 00067 struct UtcT 00068 { 00069 /// The actual time 00070 TimeT time; 00071 00072 /// The lowest bound for innacuracy 00073 unsigned long inacclo; 00074 00075 /// The upper bound for the innacuracy 00076 unsigned short inacchi; 00077 00078 /// @todo please document 00079 TdfT tdf; 00080 }; 00081 00082 /** 00083 * @brief An UTC time interval 00084 * 00085 */ 00086 struct IntervalT 00087 { 00088 /// Lower bound of the interval. 00089 TimeT lower_bound; 00090 00091 /// Upper bound of the interval. 00092 TimeT upper_bound; 00093 }; 00094 }; 00095 00096 #endif /* TIME_BASE_PIDL */