summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/TimeService.idl
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/TimeService.idl')
-rw-r--r--TAO/orbsvcs/orbsvcs/TimeService.idl179
1 files changed, 179 insertions, 0 deletions
diff --git a/TAO/orbsvcs/orbsvcs/TimeService.idl b/TAO/orbsvcs/orbsvcs/TimeService.idl
new file mode 100644
index 00000000000..c146223f83f
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/TimeService.idl
@@ -0,0 +1,179 @@
+// -*- C++ -*-
+// $Id$
+
+#ifndef TAO_TIME_IDL
+#define TAO_TIME_IDL
+
+#include "TimeBase.idl"
+
+#pragma prefix "omg.org"
+
+module CosTime
+{
+ // = TITLE
+ // CosTime Module
+ //
+ // = DESCRIPTION
+ // This module has all the interfaces, and associated enum
+ // and exception declarations for the time service.
+
+ enum TimeComparison
+ {
+ // = TITLE
+ // TimeComparison defines the possible values that can be
+ // returned as a result of comparing two UTOs.
+
+ TCEqualTo,
+ TCLessThan,
+ TCGreaterThan,
+ TCIndeterminate
+ };
+
+ enum ComparisonType
+ {
+ // = TITLE
+ // ComparisonType defines the possible ways in which the times can
+ // be compared.
+
+ IntervalC,
+ MidC
+ };
+
+ enum OverlapType
+ {
+ // = TITLE
+ // OverlapType specifies the type of overlap between two time
+ // intervals.
+
+ OTContainer,
+ OTContained,
+ OTOverlap,
+ OTNoOverlap
+ };
+
+ exception TimeUnavailable
+ {
+ // = TITLE
+ // TimeUnavailable exception is raised by the Timeservice when
+ // it cannot successfully return time.
+ };
+
+ interface TIO; // forward declaration.
+
+ interface UTO
+ {
+ // = TITLE
+ // The interface UTO is an encapsulation of time.
+ //
+ // = DESCRIPTION
+ // This interface provides the following
+ // operations on basic time :
+ // - Construction of a UTO from piece parts, and extraction of the
+ // piece parts from a UTO. The piece parts are the readonly
+ // attributes :
+ // time
+ // inaccuracy
+ // time displacement factor
+ // structure with all the above.
+ //
+ // - Comparison of time.
+ //
+ // - Conversion from relative to absolute time, and conversion to
+ // an interval (TIO)
+
+ readonly attribute TimeBase::TimeT time;
+ // absolute tine value.
+
+ readonly attribute TimeBase::InaccuracyT inaccuracy;
+ // inaccuracy in the time.
+
+ readonly attribute TimeBase::TdfT tdf;
+ // the time displacement factor.
+
+ readonly attribute TimeBase::UtcT utc_time;
+ // structure having the absolute time, the inaccuracy and the time
+ // displacement factor.
+
+ UTO absolute_time ();
+ // This returns the absolute time by adding the base time to the
+ // relative time in the object.
+
+ TimeComparison compare_time (in ComparisonType comparison_type,
+ in UTO otu);
+ // Compares the time contained in the object with the time in
+ // the supplied uto according to the supplied comparison type.
+
+ TIO time_to_interval (in UTO otu);
+ // Returns a TIO representing the time interval between the time
+ // in the object and the time in the UTO passed as a
+ // parameter. The interval returned is the interval between the
+ // mid-points of the two UTOs. Inaccuracies are ignored. Note
+ // the result of this operation is meaningless if the base times
+ // of UTOs are different.
+
+ TIO interval ();
+ // Returns a TIO object representing the error interval around
+ // the time value in the UTO.
+ };
+
+ interface TIO
+ {
+ // = TITLE
+ // The TIO represents a time interval.
+ //
+ // = DESCRIPTION
+ // This interface has operations to compare itself with a UTO or
+ // another TIO. It also has an operation to create a UTO from
+ // the value of it's time interval.
+
+ readonly attribute TimeBase::IntervalT time_interval;
+ // Consists of a lower and an upper bound for the time interval.
+
+ CosTime::OverlapType spans (in UTO time,
+ out TIO overlap);
+ // This operation compares the time in this interface with the time
+ // in the supplied UTO and returns the overlap type as well as the
+ // interval of overlap in the form of a TIO.
+
+ CosTime::OverlapType overlaps (in TIO interval,
+ out TIO overlap);
+ // This operation compares the time in this interface with the time
+ // in the supplied TIO and returns the overlap type as well as the
+ // interval of overlap in the form of a TIO.
+
+ UTO time ();
+ // Converts the time interval in this interface into a UTO object by
+ // taking the midpoint of the interval as the time and the interval
+ // as the error envelope around the time.
+
+ };
+
+ interface TimeService
+ {
+ // = TITLE
+ // The time service manages the UTOs and the TIOs. This is the first
+ // interface seen by the clients requesting time.
+
+ UTO universal_time () raises (TimeUnavailable);
+ // This operation returns the current time and an estimate of
+ // inaccuracy in a UTO.
+
+ UTO secure_universal_time () raises(TimeUnavailable);
+ // This operation returns the current time in a UTO only if the
+ // time can be guaranteed to have been obtained securely.
+
+ UTO new_universal_time (in TimeBase::TimeT time,
+ in TimeBase::InaccuracyT inaccuracy,
+ in TimeBase::TdfT tdf);
+ // This creates a new UTO based on the given parameters.
+
+ UTO uto_from_utc (in TimeBase::UtcT utc);
+ // This creates a new UTO given a time in the UtcT form.
+
+ TIO new_interval (in TimeBase::TimeT lower,
+ in TimeBase::TimeT upper );
+ // This creates a new TIO with the given parameters.
+ };
+};
+
+#endif /* TAO_TIME_IDL */