summaryrefslogtreecommitdiff
path: root/common/Goal.idl
diff options
context:
space:
mode:
Diffstat (limited to 'common/Goal.idl')
-rw-r--r--common/Goal.idl61
1 files changed, 61 insertions, 0 deletions
diff --git a/common/Goal.idl b/common/Goal.idl
new file mode 100644
index 00000000000..428a181f6ea
--- /dev/null
+++ b/common/Goal.idl
@@ -0,0 +1,61 @@
+#ifndef GOAL_IDL
+#define GOAL_IDL
+
+#include "QoS.idl"
+#include "Time.idl"
+
+module CIAO
+{
+ module RACE
+ {
+ struct GoalCondition
+ {
+ // ID of condition (in Task Network).
+ long condID;
+
+ // Utility value (specifying importance of this goal condition).
+ long utility;
+ };
+
+ typedef sequence <GoalCondition> GoalConditions;
+
+ struct TimeConstraint
+ {
+ // ID of condition (in Task Network).
+ long condID;
+
+ // Start-by (end-by) time for this data (non-data) condition.
+ TimeValue constraint;
+ };
+
+ typedef sequence <TimeConstraint> TimeConstraints;
+
+ struct GoalStructure
+ {
+ // 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 relTimes;
+
+ // Start-by and end-by constraints on conditions, in clock time.
+ TimeConstraints absTimes;
+
+ // QoS requirements.
+ QoSSpecifications QoSRequirements;
+
+ // Expected time range for start of opstring (for achieving this goal)
+ // execution.
+ TimeWindow startWindow;
+ };
+ };
+};
+
+#endif /* GOAL_IDL */