summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjkinnebrew <jkinnebrew@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2006-10-25 23:10:27 +0000
committerjkinnebrew <jkinnebrew@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2006-10-25 23:10:27 +0000
commit8b3a77c7c0952e60e2c1268ee06092cfcefd89bf (patch)
tree174c3c51f12e149d9f1ee33f59c1a306404d820c
parent89bbb1783b36921dd01b8698ffb15fcc3746d53c (diff)
downloadATCD-8b3a77c7c0952e60e2c1268ee06092cfcefd89bf.tar.gz
Wed Oct 25 22:27:20 UTC 2006 John S. Kinnebrew <john.s.kinnebrew@vanderbilt.edu>
-rw-r--r--common/OpString.idl57
1 files changed, 53 insertions, 4 deletions
diff --git a/common/OpString.idl b/common/OpString.idl
index f139055ce97..d0d0822fa0e 100644
--- a/common/OpString.idl
+++ b/common/OpString.idl
@@ -18,15 +18,21 @@ module CIAO
long usec;
};
+ // A time window is a range between an earliest and latest time value.
struct TimeWindow
{
+ // Beginning of time window.
CIAO::RACE::TimeValue Earliest;
+ // End of time window.
CIAO::RACE::TimeValue Latest;
};
+ // A task instance in an opstring.
struct InstanceDescription
{
+ // Universally unique ID of opstring.
+ // (Should correspond to goal UUID).
string UUID;
// Human-readable name (for debugging, not identification).
@@ -58,6 +64,13 @@ module CIAO
typedef ::Deployment::PlanConnectionDescriptions DataLinkDescriptions;
+ // Type of an ordering link in opstring (data links handled separately).
+ // CAUSAL: causal link; must be obeyed for correct functionality.
+ // SCHEDULING: scheduling link introduced during scheduling to prevent
+ // potential resource violations; can be ignored if
+ // additional scheduling is done.
+ // THREAT: threat link, introduced to avoid a causal link threat;
+ // must be obeyed for correct functionality.
enum ConnectionType
{
CAUSAL,
@@ -65,10 +78,13 @@ module CIAO
THREAT
};
+ // A link specifying an ordering between two instances (the endpoints).
struct OrderLinkDescription
{
+ // Human-readable name (for debugging, not identification).
string name;
+ // Type of link.
ConnectionType type;
::Deployment::ComponentExternalPortEndpoints externalEndpoint;
@@ -82,6 +98,7 @@ module CIAO
typedef sequence <OrderLinkDescription> OrderLinkDescriptions;
+ // Kind of comparison for a QoS specification.
enum QoSComparator
{
LESS_THAN,
@@ -92,6 +109,7 @@ module CIAO
NOT_EQUAL
};
+ // Type of QoS specification.
enum QoSType
{
DEADLINE,
@@ -101,14 +119,19 @@ module CIAO
struct QoSSpecification
{
+ // Human-readable name (for debugging, not identification).
string name;
+ // Type of QoS.
QoSType type;
+ // Specific type ID of component that monitors this QoS.
string MonitorID;
+ // Comparison used for this QoS specification.
QoSComparator comparator;
+ // Value to compare actual QoS to (using comparator).
any value;
};
@@ -116,8 +139,10 @@ module CIAO
struct GoalCondition
{
+ // ID of condition (in Task Network).
int condID;
+ // Utility value (specifying importance of this goal condition).
int utility;
};
@@ -125,8 +150,10 @@ module CIAO
struct TimeConstraint
{
+ // ID of condition (in Task Network).
int condID;
+ // Start-by (end-by) time for this data (non-data) condition.
TimeValue timeConstraint;
};
@@ -134,43 +161,65 @@ module CIAO
struct Goal
{
- string name;
-
+ // Universally unique ID of goal.
string UUID;
+ // Human-readable name (for debugging, not identification).
+ string name;
+
+ // Goal conditions with utility values.
GoalConditions goalConds;
+ // Start-by and end-by constraints on conditions, in relative time
+ // (relative to start of opstring to achieve this goal).
TimeConstraints relativeTimeConstraints;
+ // Start-by and end-by constraints on conditions, in clock time.
TimeConstraints absoluteTimeConstraints;
+ // QoS requirements.
QoSSpecifications QoSRequirements;
+ // Expected time range for start of opstring (for achieving this goal)
+ // execution.
TimeWindow startWindow;
};
struct OperationalString
{
- string name;
-
+ // Universally unique ID of opstring.
+ // (Should correspond to goal UUID).
string UUID;
+ // Human-readable name (for debugging, not identification).
+ string name;
+
+ // Goal achieved by this opstring.
Goal goal;
+ // Task instances in opstring.
InstanceDescriptions instances;
+ // Data links (between task instances) in opstring.
DataLinkDescriptions dataLinks;
+ // Ordering links (between task instances) in opstring.
OrderLinkDescriptions orderLinks;
+ // Priority of this opstring.
+ // (Should be derived from expected utility of goal).
long priority;
+ // QoS requirements.
QoSSpecifications QoSRequirements;
+ // Expected time range for start of opstring execution.
TimeWindow startWindow;
+ // Expected time range for end of opstring execution.
TimeWindow endWindow;
+ // Properties for deployment of opstring.
::Deployment::Properties properties;
};