OpenDDS  Snapshot(2023/04/28-20:55)
DdsDcpsInfrastructure.idl
Go to the documentation of this file.
1 /*
2  *
3  *
4  * Distributed under the OpenDDS License.
5  * See: http://www.opendds.org/license.html
6  */
7 
8 #ifndef OPENDDS_DDSDCPSINFRASTRUCTURE_IDL
9 #define OPENDDS_DDSDCPSINFRASTRUCTURE_IDL
10 
11 #include <dds/DdsDcpsCore.idl>
13 
14 #define DOMAINID_TYPE_NATIVE long
15 #define HANDLE_NIL_NATIVE 0
16 // Implementation Note:
17 // Client code must include "Service_Participant.h"
18 // to have these definitions.
19 //#define TheParticipantFactory
20 
21 // Implementation Note:
22 // Client code must include "Marked_Default_Qos.h"
23 // to have these definitions.
24 //#define PARTICIPANT_QOS_DEFAULT
25 //#define TOPIC_QOS_DEFAULT
26 //#define PUBLISHER_QOS_DEFAULT
27 //#define SUBSCRIBER_QOS_DEFAULT
28 //#define DATAWRITER_QOS_DEFAULT
29 //#define DATAREADER_QOS_DEFAULT
30 //#define DATAWRITER_QOS_USE_TOPIC_QOS
31 //#define DATAREADER_QOS_USE_TOPIC_QOS
32 
33 #pragma ciao lem "dds/DdsDcpsInfrastructureE.idl"
34 
35 module DDS {
37  // Moved to DdsDcpsCore.idl
38  // typedef HANDLE_TYPE_NATIVE InstanceHandle_t;
39  // typedef BUILTIN_TOPIC_KEY_TYPE_NATIVE BuiltinTopicKeyValue[3];
40  // typedef sequence<InstanceHandle_t> InstanceHandleSeq;
41 
42  typedef long ReturnCode_t;
43 
44  // ----------------------------------------------------------------------
45  // Pre-defined values
46  // ----------------------------------------------------------------------
48 
49  const long LENGTH_UNLIMITED = -1;
50 
51  // ----------------------------------------------------------------------
52  // Return codes
53  // ----------------------------------------------------------------------
54  const ReturnCode_t RETCODE_OK = 0;
55  const ReturnCode_t RETCODE_ERROR = 1;
56  const ReturnCode_t RETCODE_UNSUPPORTED = 2;
57  const ReturnCode_t RETCODE_BAD_PARAMETER = 3;
58  const ReturnCode_t RETCODE_PRECONDITION_NOT_MET = 4;
59  const ReturnCode_t RETCODE_OUT_OF_RESOURCES = 5;
60  const ReturnCode_t RETCODE_NOT_ENABLED = 6;
61  const ReturnCode_t RETCODE_IMMUTABLE_POLICY = 7;
62  const ReturnCode_t RETCODE_INCONSISTENT_POLICY = 8;
63  const ReturnCode_t RETCODE_ALREADY_DELETED = 9;
64  const ReturnCode_t RETCODE_TIMEOUT = 10;
65  const ReturnCode_t RETCODE_NO_DATA = 11;
66  const ReturnCode_t RETCODE_ILLEGAL_OPERATION = 12;
67 
68  // ----------------------------------------------------------------------
69  // Status to support listeners and conditions
70  // ----------------------------------------------------------------------
71 
72  typedef unsigned long StatusKind;
73  typedef unsigned long StatusMask; // bit-mask StatusKind
74 
75  const StatusKind INCONSISTENT_TOPIC_STATUS = 0x0001 << 0;
76  const StatusKind OFFERED_DEADLINE_MISSED_STATUS = 0x0001 << 1;
77  const StatusKind REQUESTED_DEADLINE_MISSED_STATUS = 0x0001 << 2;
78  const StatusKind OFFERED_INCOMPATIBLE_QOS_STATUS = 0x0001 << 5;
79  const StatusKind REQUESTED_INCOMPATIBLE_QOS_STATUS = 0x0001 << 6;
80  const StatusKind SAMPLE_LOST_STATUS = 0x0001 << 7;
81  const StatusKind SAMPLE_REJECTED_STATUS = 0x0001 << 8;
82  const StatusKind DATA_ON_READERS_STATUS = 0x0001 << 9;
83  const StatusKind DATA_AVAILABLE_STATUS = 0x0001 << 10;
84  const StatusKind LIVELINESS_LOST_STATUS = 0x0001 << 11;
85  const StatusKind LIVELINESS_CHANGED_STATUS = 0x0001 << 12;
86  const StatusKind PUBLICATION_MATCHED_STATUS = 0x0001 << 13;
87  const StatusKind SUBSCRIPTION_MATCHED_STATUS = 0x0001 << 14;
88 
92  };
93 
97  };
98 
104  };
105 
111  };
112 
116  };
117 
124  };
125 
130  };
131 
136  };
137 
143  };
144 
150  };
151 
152 
159  };
160 
161 
168  };
169 
170  // ----------------------------------------------------------------------
171  // Listeners
172  // ----------------------------------------------------------------------
173 
174  local interface Listener;
175  local interface Entity;
176  //interface TopicDescription;
177  //interface Topic;
178  //interface ContentFilteredTopic;
179  //interface MultiTopic;
180  //interface DataWriter;
181  //interface DataReader;
182  //interface Subscriber;
183  //interface Publisher;
184 
185  //typedef sequence<Topic> TopicSeq;
186  //typedef sequence<DataReader> DataReaderSeq;
187 
188  local interface Listener {};
189 
190  // ----------------------------------------------------------------------
191  // Conditions
192  // ----------------------------------------------------------------------
193 
194  local interface Condition {
195  boolean get_trigger_value();
196  };
197 
198  // WaitSet and GuardCondition can't be expressed in IDL because they are
199  // required by the spec to be default-constructable by the user
200  // (07-01-01 section 7.2.2 pgh 11). Therefore in IDL we have WaitSetInterf
201  // and GuardConditionInterf. Application code should #include
202  // "dds/DCPS/WaitSet.h", "dds/DCPS/GuardCondition.h" and construct heap
203  // objects with "new WaitSet()" and "new GuardCondition()". Those objects
204  // (in the DDS namespace/package) implement the interfaces described below.
205  // In C++, these are reference-counted local CORBA objects.
206 
207  local interface WaitSetInterf {
208  ReturnCode_t wait(
209  inout ConditionSeq active_conditions,
210  in Duration_t timeout);
211  ReturnCode_t attach_condition(
212  in Condition cond);
213  ReturnCode_t detach_condition(
214  in Condition cond);
215  ReturnCode_t get_conditions(
216  inout ConditionSeq attached_conditions);
217  };
218 
219  local interface GuardConditionInterf : Condition {
220  ReturnCode_t set_trigger_value(
221  in boolean value);
222  };
223 
224 
225  local interface StatusCondition : Condition {
226  StatusMask get_enabled_statuses();
227  ReturnCode_t set_enabled_statuses(
228  in StatusMask mask);
229  Entity get_entity();
230  };
231 
232  // ----------------------------------------------------------------------
233  // Qos
234  // ----------------------------------------------------------------------
235  const string USERDATA_QOS_POLICY_NAME = "UserData";
236  const string DURABILITY_QOS_POLICY_NAME = "Durability";
237  const string PRESENTATION_QOS_POLICY_NAME = "Presentation";
238  const string DEADLINE_QOS_POLICY_NAME = "Deadline";
239  const string LATENCYBUDGET_QOS_POLICY_NAME = "LatencyBudget";
240  const string OWNERSHIP_QOS_POLICY_NAME = "Ownership";
241  const string OWNERSHIPSTRENGTH_QOS_POLICY_NAME = "OwnershipStrength";
242  const string LIVELINESS_QOS_POLICY_NAME = "Liveliness";
243  const string TIMEBASEDFILTER_QOS_POLICY_NAME = "TimeBasedFilter";
244  const string PARTITION_QOS_POLICY_NAME = "Partition";
245  const string RELIABILITY_QOS_POLICY_NAME = "Reliability";
246  const string DESTINATIONORDER_QOS_POLICY_NAME = "DestinationOrder";
247  const string HISTORY_QOS_POLICY_NAME = "History";
248  const string RESOURCELIMITS_QOS_POLICY_NAME = "ResourceLimits";
249  const string ENTITYFACTORY_QOS_POLICY_NAME = "EntityFactory";
250  const string WRITERDATALIFECYCLE_QOS_POLICY_NAME = "WriterDataLifecycle";
251  const string READERDATALIFECYCLE_QOS_POLICY_NAME = "ReaderDataLifecycle";
252  const string TOPICDATA_QOS_POLICY_NAME = "TopicData";
253  const string GROUPDATA_QOS_POLICY_NAME = "GroupData";
254  const string TRANSPORTPRIORITY_QOS_POLICY_NAME = "TransportPriority";
255  const string LIFESPAN_QOS_POLICY_NAME = "Lifespan";
256  const string DURABILITYSERVICE_POLICY_NAME = "DurabilityService";
257 
281 
282  // ----------------------------------------------------------------------
283  local interface Entity {
284  // ReturnCode_t set_qos(
285  // in EntityQos qos);
286  // ReturnCode_t get_qos(
287  // inout EntityQos qos);
288  // ReturnCode_t set_listener(
289  // in Listener l,
290  // in StatusMask mask);
291  // Listener get_listener();
292 
293  ReturnCode_t enable();
294 
295  StatusCondition get_statuscondition();
296 
297  StatusMask get_status_changes();
298 
299  InstanceHandle_t get_instance_handle();
300  };
301 
302 };
303 
304 module OpenDDS
305 {
306  const string TRANSPORTTYPE_QOS_POLICY_NAME = "TransportType";
307 
308  // OpenDDS-specific QosPolicyId_t values start from the maximum
309  // QosPolicyId_t (a 32-bit signed integer) and decrement as new
310  // OpenDDS-specific values are added. The goal is to avoid
311  // potential conflicts with new OMG defined QosPolicyId_t values.
313 
314  // DomainIds used by the implementation will be larger than this constant:
316 
318 
319  module DCPS
320  {
321  const DDS::StatusMask ALL_STATUS_MASK = 0xffffffff;
322  const DDS::StatusMask NO_STATUS_MASK = 0x00000000;
324  };
325 };
326 
327 #endif /* OPENDDS_DCPS_INFRASTRUCTURE_IDL */
const string TRANSPORTTYPE_QOS_POLICY_NAME
const string LIFESPAN_QOS_POLICY_NAME
const QosPolicyId_t PRESENTATION_QOS_POLICY_ID
const string GROUPDATA_QOS_POLICY_NAME
const DDS::StatusMask ALL_STATUS_MASK
const DDS::StatusMask NO_STATUS_MASK
const ::DDS::DomainId_t MAX_USER_DOMAINID
const StatusKind LIVELINESS_LOST_STATUS
const string DESTINATIONORDER_QOS_POLICY_NAME
const StatusKind SAMPLE_LOST_STATUS
const LogLevel::Value value
Definition: debug.cpp:61
const StatusKind LIVELINESS_CHANGED_STATUS
const ReturnCode_t RETCODE_PRECONDITION_NOT_MET
const InstanceHandle_t HANDLE_NIL
const QosPolicyId_t DESTINATIONORDER_QOS_POLICY_ID
const string USERDATA_QOS_POLICY_NAME
const QosPolicyId_t DEADLINE_QOS_POLICY_ID
const ReturnCode_t RETCODE_INCONSISTENT_POLICY
sequence< QosPolicyCount > QosPolicyCountSeq
Definition: DdsDcpsCore.idl:62
const QosPolicyId_t RESOURCELIMITS_QOS_POLICY_ID
const string ENTITYFACTORY_QOS_POLICY_NAME
const string PARTITION_QOS_POLICY_NAME
const QosPolicyId_t DURABILITYSERVICE_QOS_POLICY_ID
const QosPolicyId_t PARTITION_QOS_POLICY_ID
const QosPolicyId_t DURABILITY_QOS_POLICY_ID
const ReturnCode_t RETCODE_ALREADY_DELETED
const string WRITERDATALIFECYCLE_QOS_POLICY_NAME
const StatusKind OFFERED_INCOMPATIBLE_QOS_STATUS
const string TOPICDATA_QOS_POLICY_NAME
pid_t wait(int *=0)
const StatusKind PUBLICATION_MATCHED_STATUS
const QosPolicyId_t WRITERDATALIFECYCLE_QOS_POLICY_ID
sequence< Condition > ConditionSeq
const QosPolicyId_t USERDATA_QOS_POLICY_ID
const DDS::StatusMask DEFAULT_STATUS_MASK
const StatusKind REQUESTED_INCOMPATIBLE_QOS_STATUS
const ReturnCode_t RETCODE_IMMUTABLE_POLICY
const string DEADLINE_QOS_POLICY_NAME
const QosPolicyId_t OWNERSHIPSTRENGTH_QOS_POLICY_ID
const StatusKind DATA_ON_READERS_STATUS
const QosPolicyId_t OWNERSHIP_QOS_POLICY_ID
DOMAINID_TYPE_NATIVE DomainId_t
long QosPolicyId_t
Definition: DdsDcpsCore.idl:55
SampleRejectedStatusKind last_reason
const QosPolicyId_t LIFESPAN_QOS_POLICY_ID
const QosPolicyId_t LIVELINESS_QOS_POLICY_ID
const string LATENCYBUDGET_QOS_POLICY_NAME
const StatusKind OFFERED_DEADLINE_MISSED_STATUS
const QosPolicyId_t GROUPDATA_QOS_POLICY_ID
const ReturnCode_t RETCODE_TIMEOUT
const string DURABILITY_QOS_POLICY_NAME
const StatusKind DATA_AVAILABLE_STATUS
const string DURABILITYSERVICE_POLICY_NAME
const QosPolicyId_t HISTORY_QOS_POLICY_ID
const QosPolicyId_t READERDATALIFECYCLE_QOS_POLICY_ID
const QosPolicyId_t INVALID_QOS_POLICY_ID
const ReturnCode_t RETCODE_OUT_OF_RESOURCES
const ReturnCode_t RETCODE_ILLEGAL_OPERATION
The End User API.
const string LIVELINESS_QOS_POLICY_NAME
HANDLE_TYPE_NATIVE InstanceHandle_t
Definition: DdsDcpsCore.idl:51
unsigned long StatusMask
const QosPolicyId_t LATENCYBUDGET_QOS_POLICY_ID
const ReturnCode_t RETCODE_NOT_ENABLED
const string TIMEBASEDFILTER_QOS_POLICY_NAME
const ReturnCode_t RETCODE_NO_DATA
const QosPolicyId_t ENTITYFACTORY_QOS_POLICY_ID
#define DOMAINID_TYPE_NATIVE
const QosPolicyId_t TIMEBASEDFILTER_QOS_POLICY_ID
const string HISTORY_QOS_POLICY_NAME
const string RESOURCELIMITS_QOS_POLICY_NAME
const string READERDATALIFECYCLE_QOS_POLICY_NAME
const ReturnCode_t RETCODE_ERROR
const string PRESENTATION_QOS_POLICY_NAME
const string OWNERSHIP_QOS_POLICY_NAME
const ReturnCode_t RETCODE_OK
const ReturnCode_t RETCODE_UNSUPPORTED
const ::DDS::DomainId_t DOMAIN_UNKNOWN
const StatusKind INCONSISTENT_TOPIC_STATUS
const QosPolicyId_t RELIABILITY_QOS_POLICY_ID
const long LENGTH_UNLIMITED
const QosPolicyId_t TOPICDATA_QOS_POLICY_ID
const StatusKind SUBSCRIPTION_MATCHED_STATUS
unsigned long StatusKind
const StatusKind REQUESTED_DEADLINE_MISSED_STATUS
const ::DDS::QosPolicyId_t TRANSPORTTYPE_QOS_POLICY_ID
const QosPolicyId_t TRANSPORTPRIORITY_QOS_POLICY_ID
const string TRANSPORTPRIORITY_QOS_POLICY_NAME
The Internal API and Implementation of OpenDDS.
Definition: AddressCache.h:28
const string OWNERSHIPSTRENGTH_QOS_POLICY_NAME
#define HANDLE_NIL_NATIVE
const string RELIABILITY_QOS_POLICY_NAME
const StatusKind SAMPLE_REJECTED_STATUS
const ReturnCode_t RETCODE_BAD_PARAMETER