summaryrefslogtreecommitdiff
path: root/common/OpString.idl
blob: c279f00178b8d2562f94ddfb354b8edec744469a (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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#ifndef OPERATIONAL_STRING_IDL
#define OPERATIONAL_STRING_IDL

#include "ciao/Deployment_Data.idl"

module CIAO
{
  module RACE
    {

      const long UNDEFINED_TIME_ENTRY = -1;

      struct TimeValue
      {
        /* Seconds since Jan. 1, 1970 */
        long    sec;
        /* and microseconds */
        long    usec;
      };

      struct TimeWindow
      {
        TimeValue Earliest;

        TimeValue Latest;
      };

      struct InstanceDescription
      {
        string UUID;

        string name;

        string node;

        string taskId;

        string taskTypeId;

        string suggestedImpl;

        ::Deployment::Properties configProperty;

        TimeWindow startWindow;

        TimeWindow endWindow;
      };

      typedef sequence <InstanceDescription> InstanceDescriptions;


      typedef ::Deployment::PlanConnectionDescriptions DataLinkDescriptions;

      enum ConnectionType
      {
        CAUSAL,
        SCHEDULING,
        THREAT
      };

      struct OrderLinkDescription
      {
        string name;

        ConnectionType type;

        ::Deployment::ComponentExternalPortEndpoints externalEndpoint;

        ::Deployment::PlanSubcomponentPortEndpoints internalEndpoint;

        ::Deployment::ExternalReferenceEndpoints externalReference;

      };

      typedef sequence <OrderLinkDescription> OrderLinkDescriptions;


      enum QoSComparator
      {
        LESS_THAN,
        GREATER_THAN,
        EQUAL,
        LESS_THAN_EQUAL,
        GREATER_THAN_EQUAL,
        NOT_EQUAL
      };

      enum QoSType
      {
        DEADLINE,
        OTHERS
      };


      struct QoSSpecification
      {
        string name;

        QoSType type;

        string MonitorID;

        QoSComparator comparator;

        any value;
      };

      typedef sequence <QoSSpecification> QoSSpecifications;

      struct OperationalString
      {

        string name;

        string UUID;

        InstanceDescriptions instances;

        DataLinkDescriptions dataLinks;

        OrderLinkDescriptions orderLinks;

        long priority;

        QoSSpecifications QoSRequirements;

        TimeWindow startWindow;

        TimeWindow endWindow;

        ::Deployment::Properties properties;

      };


  };
};

#endif /* OPERATIONAL_STRING_IDL */