blob: 428a181f6ea9601e9c12847cd3621eaa9b26f37f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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 */
|