00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file TAO_TIO.h 00006 * 00007 * TAO_TIO.h,v 1.18 2006/03/14 06:14:35 jtc Exp 00008 * 00009 * This class implements the CosTime::TIO IDL interface. 00010 * 00011 * 00012 * @author Vishal Kachroo <vishal@cs.wustl.edu> 00013 */ 00014 //============================================================================= 00015 00016 00017 #ifndef TAO_TIO_H 00018 #define TAO_TIO_H 00019 #include /**/ "ace/pre.h" 00020 00021 #include "orbsvcs/TimeServiceS.h" 00022 #include "orbsvcs/Time/TAO_UTO.h" 00023 #include "orbsvcs/Time/time_export.h" 00024 00025 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00026 00027 /** 00028 * @class TAO_TIO 00029 * 00030 * @brief Time Interval Object Implementation. 00031 * 00032 * The TIO represents a time interval and has operations to 00033 * compare itself with a UTO or another TIO. It also has an 00034 * operation to create a UTO from the value of it's time 00035 * interval. 00036 */ 00037 class TAO_Time_Export TAO_TIO : public POA_CosTime::TIO 00038 { 00039 public: 00040 // = Initialization and termination methods. 00041 /// Constructor. 00042 TAO_TIO (TimeBase::TimeT lower, 00043 TimeBase::TimeT upper); 00044 00045 /// Destructor. 00046 ~TAO_TIO (void); 00047 00048 /// This is the get method for the attribute time interval. 00049 virtual TimeBase::IntervalT time_interval ( 00050 ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) 00051 ACE_THROW_SPEC ((CORBA::SystemException)); 00052 00053 /** 00054 * This operation returns a value of type OverlapType depending on 00055 * how the interval in the object and the time range represented by 00056 * the parameter UTO overlap. If OverlapType is not OTNoOverlap, 00057 * then the out parameter overlap contains the overlap interval, 00058 * otherwise the out parameter contains the gap between the two 00059 * intervals. 00060 */ 00061 virtual CosTime::OverlapType spans (CosTime::UTO_ptr time, 00062 CosTime::TIO_out overlap 00063 ACE_ENV_ARG_DECL) 00064 ACE_THROW_SPEC ((CORBA::SystemException)); 00065 00066 /** 00067 * This operation returns a value of type OverlapType depending on 00068 * how the interval in the object and interval in the parameter TIO 00069 * overlap. If OverlapType is not OTNoOverlap, then the out 00070 * parameter overlap contains the overlap interval, otherwise the 00071 * out parameter contains the gap between the two intervals. 00072 */ 00073 virtual CosTime::OverlapType overlaps (CosTime::TIO_ptr interval, 00074 CosTime::TIO_out overlap 00075 ACE_ENV_ARG_DECL) 00076 ACE_THROW_SPEC ((CORBA::SystemException)); 00077 00078 /** 00079 * Returns a UTO in which the inaccuracy interval is equal to the 00080 * time interval in the TIO and time value is the midpoint of the 00081 * interval. 00082 */ 00083 virtual CosTime::UTO_ptr time (ACE_ENV_SINGLE_ARG_DECL) 00084 ACE_THROW_SPEC ((CORBA::SystemException)); 00085 00086 private: 00087 /// This attribute returns an IntervalT structure with the values of 00088 /// its fields filled in with the corresponding values from the TIO. 00089 TimeBase::IntervalT attr_time_interval; 00090 }; 00091 00092 TAO_END_VERSIONED_NAMESPACE_DECL 00093 00094 #include /**/ "ace/post.h" 00095 #endif /* TAO_TIO_H */