//File: TimeBase.idl
//Part of the Time Service
// Note: if your IDL compiler does not yet support the 
//   "long long" data type, compile this module with the 
//   preprocessor definition "NOLONGLONG". With many 
//   compilers this would be done with a qualifier on 
//   the command line, something like -DNOLONGLONG

#ifndef _TIME_BASE_IDL_
#define _TIME_BASE_IDL_

// omniORB specific pragmas to insert extra includes into the stub header.
#pragma hh #ifndef __COS_SYSDEP_H_EXTERNAL_GUARD__
#pragma hh #define __COS_SYSDEP_H_EXTERNAL_GUARD__
#pragma hh #include "COS_sysdep.h"
#pragma hh #endif

#pragma prefix "omg.org"

module TimeBase {

#ifdef NOLONGLONG
	struct ulonglong{
		unsigned long 		low;
		unsigned long		high;
	};
	typedef ulonglong 		TimeT;
#else
	typedef unsigned long long	TimeT;
#endif
	
	typedef TimeT 			InaccuracyT;
	typedef short 			TdfT;
	struct UtcT {
		TimeT			time;		// 8 octets
		unsigned long	inacclo;	// 4 octets
		unsigned short	inacchi;	// 2 octets
		TdfT			tdf;		// 2 octets 
									// total 16 octets.
	};

	struct IntervalT {
		TimeT			lower_bound;
		TimeT			upper_bound;
	};
};
#endif /* ifndef _TIME_BASE_IDL_ */
