omg-elements 0.2.3

Core message data structures generated from OMG IDL.
Documentation
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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
/*
 *
 *
 * Distributed under the Apache License.
 * See: https://github.com/frehberg/rtps-gen/blob/master/LICENSE
 */

#ifndef DDS_DCPS_CORE_IDL
#define DDS_DCPS_CORE_IDL

module DDS {
    struct NativeInstanceHandle_t {
        octet entityKey[8];
    };
    typedef long BUILTIN_TOPIC_KEY_TYPE_NATIVE;

// Make the IDL compiler produce include of zero-copy read info
// sequence template.
#pragma DCPS_SUPPORT_ZERO_COPY_READ
    typedef sequence<string> StringSeq;
    typedef NativeInstanceHandle_t    InstanceHandle_t;
    typedef BUILTIN_TOPIC_KEY_TYPE_NATIVE BuiltinTopicKeyValue[3];

    typedef sequence<InstanceHandle_t> InstanceHandleSeq;

    typedef long QosPolicyId_t;

    struct QosPolicyCount {
        QosPolicyId_t policy_id;
        long count;
    };

    typedef sequence<QosPolicyCount> QosPolicyCountSeq;

    typedef sequence<octet> OctetSeq;

    struct Duration_t {
        long sec;
        unsigned long nanosec;
    };

    struct UserDataQosPolicy {
        OctetSeq value;
    };

    struct GroupDataQosPolicy {
        OctetSeq value;
    };

    struct TopicDataQosPolicy {
        OctetSeq value;
    };

    struct PartitionQosPolicy {
        StringSeq name;
    };

    enum HistoryQosPolicyKind {
        KEEP_LAST_HISTORY_QOS,
        KEEP_ALL_HISTORY_QOS
    };

    enum DurabilityQosPolicyKind {
        VOLATILE_DURABILITY_QOS,
        TRANSIENT_LOCAL_DURABILITY_QOS,
        TRANSIENT_DURABILITY_QOS,
        PERSISTENT_DURABILITY_QOS
    };

    struct DurabilityQosPolicy {
        DurabilityQosPolicyKind kind;
    };

    struct DurabilityServiceQosPolicy {
        Duration_t              service_cleanup_delay;
        HistoryQosPolicyKind    history_kind;
        long                    history_depth;
        long                    max_samples;
        long                    max_instances;
        long                    max_samples_per_instance;
    };

    struct DeadlineQosPolicy {
        Duration_t period;
    };

    struct LatencyBudgetQosPolicy {
        Duration_t duration;
    };

    enum LivelinessQosPolicyKind {
        AUTOMATIC_LIVELINESS_QOS,
        MANUAL_BY_PARTICIPANT_LIVELINESS_QOS,
        MANUAL_BY_TOPIC_LIVELINESS_QOS
    };

    struct LivelinessQosPolicy {
        LivelinessQosPolicyKind kind;
        Duration_t lease_duration;
    };

    enum ReliabilityQosPolicyKind {
        BEST_EFFORT_RELIABILITY_QOS,
        RELIABLE_RELIABILITY_QOS
    };

    struct ReliabilityQosPolicy {
        ReliabilityQosPolicyKind kind;
        Duration_t max_blocking_time;
    };

    enum DestinationOrderQosPolicyKind {
        BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS,
        BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS
    };

    struct DestinationOrderQosPolicy {
        DestinationOrderQosPolicyKind kind;
    };

    struct HistoryQosPolicy {
        HistoryQosPolicyKind kind;
        long depth;
    };

    struct ResourceLimitsQosPolicy {
        long max_samples;
        long max_instances;
        long max_samples_per_instance;
    };

    struct TransportPriorityQosPolicy {
        long value;
    };

    struct LifespanQosPolicy {
        Duration_t duration;
    };

    enum OwnershipQosPolicyKind {
        SHARED_OWNERSHIP_QOS,
        EXCLUSIVE_OWNERSHIP_QOS
    };

    struct OwnershipQosPolicy {
        OwnershipQosPolicyKind kind;
    };

    struct OwnershipStrengthQosPolicy {
        long value;
    };

    enum PresentationQosPolicyAccessScopeKind {
        INSTANCE_PRESENTATION_QOS,
        TOPIC_PRESENTATION_QOS,
        GROUP_PRESENTATION_QOS
    };

    struct PresentationQosPolicy {
        PresentationQosPolicyAccessScopeKind access_scope;
        boolean coherent_access;
        boolean ordered_access;
    };

    struct TimeBasedFilterQosPolicy {
        Duration_t minimum_separation;
    };

    struct TopicQos {
        TopicDataQosPolicy topic_data;
        DurabilityQosPolicy durability;
        DurabilityServiceQosPolicy durability_service;
        DeadlineQosPolicy deadline;
        LatencyBudgetQosPolicy latency_budget;
        LivelinessQosPolicy liveliness;
        ReliabilityQosPolicy reliability;
        DestinationOrderQosPolicy destination_order;
        HistoryQosPolicy history;
        ResourceLimitsQosPolicy resource_limits;
        TransportPriorityQosPolicy transport_priority;
        LifespanQosPolicy lifespan;
        OwnershipQosPolicy ownership;
    };

    struct WriterDataLifecycleQosPolicy {
        boolean autodispose_unregistered_instances;
    };

    struct DataWriterQos {
        DurabilityQosPolicy durability;
        DurabilityServiceQosPolicy durability_service;
        DeadlineQosPolicy deadline;
        LatencyBudgetQosPolicy latency_budget;
        LivelinessQosPolicy liveliness;
        ReliabilityQosPolicy reliability;
        DestinationOrderQosPolicy destination_order;
        HistoryQosPolicy history;
        ResourceLimitsQosPolicy resource_limits;
        TransportPriorityQosPolicy transport_priority;
        LifespanQosPolicy lifespan;
        UserDataQosPolicy user_data;
        OwnershipQosPolicy ownership;
        OwnershipStrengthQosPolicy ownership_strength;
        WriterDataLifecycleQosPolicy writer_data_lifecycle;
    };

    struct EntityFactoryQosPolicy {
        boolean autoenable_created_entities;
    };

    struct PublisherQos {
        PresentationQosPolicy presentation;
        PartitionQosPolicy partition;
        GroupDataQosPolicy group_data;
        EntityFactoryQosPolicy entity_factory;
    };

    struct ReaderDataLifecycleQosPolicy {
        Duration_t autopurge_nowriter_samples_delay;
        Duration_t autopurge_disposed_samples_delay;
    };

    struct DataReaderQos {
        DurabilityQosPolicy durability;
        DeadlineQosPolicy deadline;
        LatencyBudgetQosPolicy latency_budget;
        LivelinessQosPolicy liveliness;
        ReliabilityQosPolicy reliability;
        DestinationOrderQosPolicy destination_order;
        HistoryQosPolicy history;
        ResourceLimitsQosPolicy resource_limits;
        UserDataQosPolicy user_data;
        OwnershipQosPolicy ownership;
        TimeBasedFilterQosPolicy time_based_filter;
        ReaderDataLifecycleQosPolicy reader_data_lifecycle;
    };

    struct SubscriberQos {
        PresentationQosPolicy presentation;
        PartitionQosPolicy partition;
        GroupDataQosPolicy group_data;
        EntityFactoryQosPolicy entity_factory;
    };

    struct DomainParticipantFactoryQos {
        EntityFactoryQosPolicy entity_factory;
    };

    struct DomainParticipantQos {
        UserDataQosPolicy user_data;
        EntityFactoryQosPolicy entity_factory;
    };

    struct BuiltinTopicKey_t {
        BuiltinTopicKeyValue value;
    };

    // ----------------------------------------------------------------------
#if !defined (DDS_HAS_MINIMUM_BIT)
// These pragmas are DDS-specific.
#pragma DCPS_DATA_TYPE "DDS::ParticipantBuiltinTopicData"
#pragma DCPS_DATA_KEY  "DDS::ParticipantBuiltinTopicData key.value[0]"
#pragma DCPS_DATA_KEY  "DDS::ParticipantBuiltinTopicData key.value[1]"
#pragma DCPS_DATA_KEY  "DDS::ParticipantBuiltinTopicData key.value[2]"
#endif

    struct ParticipantBuiltinTopicData {
        BuiltinTopicKey_t key;
        UserDataQosPolicy user_data;
    };

#if !defined (DDS_HAS_MINIMUM_BIT)
// These pragmas are DDS-specific.
#pragma DCPS_DATA_TYPE "DDS::PublicationBuiltinTopicData"
#pragma DCPS_DATA_KEY  "DDS::PublicationBuiltinTopicData key.value[0]"
#pragma DCPS_DATA_KEY  "DDS::PublicationBuiltinTopicData key.value[1]"
#pragma DCPS_DATA_KEY  "DDS::PublicationBuiltinTopicData key.value[2]"
#endif
    struct PublicationBuiltinTopicData {
        BuiltinTopicKey_t key;
        BuiltinTopicKey_t participant_key;
        string topic_name;
        string type_name;
        DurabilityQosPolicy durability;
        DurabilityServiceQosPolicy durability_service;
        DeadlineQosPolicy deadline;
        LatencyBudgetQosPolicy latency_budget;
        LivelinessQosPolicy liveliness;
        ReliabilityQosPolicy reliability;
        LifespanQosPolicy lifespan;
        UserDataQosPolicy user_data;
        OwnershipQosPolicy ownership;
        OwnershipStrengthQosPolicy ownership_strength;
        DestinationOrderQosPolicy destination_order;
        PresentationQosPolicy presentation;
        PartitionQosPolicy partition;
        TopicDataQosPolicy topic_data;
        GroupDataQosPolicy group_data;
    };

#if !defined (DDS_HAS_MINIMUM_BIT)
// These pragmas are DDS-specific.
#pragma DCPS_DATA_TYPE "DDS::SubscriptionBuiltinTopicData"
#pragma DCPS_DATA_KEY  "DDS::SubscriptionBuiltinTopicData key.value[0]"
#pragma DCPS_DATA_KEY  "DDS::SubscriptionBuiltinTopicData key.value[1]"
#pragma DCPS_DATA_KEY  "DDS::SubscriptionBuiltinTopicData key.value[2]"
#endif
    struct SubscriptionBuiltinTopicData {
        BuiltinTopicKey_t key;
        BuiltinTopicKey_t participant_key;
        string topic_name;
        string type_name;
        DurabilityQosPolicy durability;
        DeadlineQosPolicy deadline;
        LatencyBudgetQosPolicy latency_budget;
        LivelinessQosPolicy liveliness;
        ReliabilityQosPolicy reliability;
        OwnershipQosPolicy ownership;
        DestinationOrderQosPolicy destination_order;
        UserDataQosPolicy user_data;
        TimeBasedFilterQosPolicy time_based_filter;
        PresentationQosPolicy presentation;
        PartitionQosPolicy partition;
        TopicDataQosPolicy topic_data;
        GroupDataQosPolicy group_data;
    };

#if !defined (DDS_HAS_MINIMUM_BIT)
// These pragmas are DDS-specific.
#pragma DCPS_DATA_TYPE "DDS::TopicBuiltinTopicData"
#pragma DCPS_DATA_KEY  "DDS::TopicBuiltinTopicData key.value[0]"
#pragma DCPS_DATA_KEY  "DDS::TopicBuiltinTopicData key.value[1]"
#pragma DCPS_DATA_KEY  "DDS::TopicBuiltinTopicData key.value[2]"
#endif

    struct TopicBuiltinTopicData {
        BuiltinTopicKey_t key;
        string name;
        string type_name;
        DurabilityQosPolicy durability;
        DurabilityServiceQosPolicy durability_service;
        DeadlineQosPolicy deadline;
        LatencyBudgetQosPolicy latency_budget;
        LivelinessQosPolicy liveliness;
        ReliabilityQosPolicy reliability;
        TransportPriorityQosPolicy transport_priority;
        LifespanQosPolicy lifespan;
        DestinationOrderQosPolicy destination_order;
        HistoryQosPolicy history;
        ResourceLimitsQosPolicy resource_limits;
        OwnershipQosPolicy ownership;
        TopicDataQosPolicy topic_data;
    };

    // Sample states to support reads
    typedef unsigned long SampleStateKind;

    const SampleStateKind READ_SAMPLE_STATE = 0x0001 << 0;
    const SampleStateKind NOT_READ_SAMPLE_STATE = 0x0001 << 1;

    // This is a bit-mask SampleStateKind
    typedef unsigned long SampleStateMask;
    const SampleStateMask ANY_SAMPLE_STATE = 0xffff;

    // View states to support reads
    typedef unsigned long ViewStateKind;
    const ViewStateKind NEW_VIEW_STATE = 0x0001 << 0;
    const ViewStateKind NOT_NEW_VIEW_STATE = 0x0001 << 1;

    // This is a bit-mask ViewStateKind
    typedef unsigned long ViewStateMask;
    const ViewStateMask ANY_VIEW_STATE = 0xffff;

    // Instance states to support reads
    typedef unsigned long InstanceStateKind;
    const InstanceStateKind ALIVE_INSTANCE_STATE = 0x0001 << 0;
    const InstanceStateKind NOT_ALIVE_DISPOSED_INSTANCE_STATE   = 0x0001 << 1;
    const InstanceStateKind NOT_ALIVE_NO_WRITERS_INSTANCE_STATE = 0x0001 << 2;

    // This is a bit-mask InstanceStateKind
    typedef unsigned long InstanceStateMask;
    const InstanceStateMask ANY_INSTANCE_STATE                  = 0xffff;
    const InstanceStateMask NOT_ALIVE_INSTANCE_STATE            = 0x006;

    struct Time_t {
        long sec;
        unsigned long nanosec;
    };

    struct SampleInfo {
        SampleStateKind sample_state;
        ViewStateKind view_state;
        InstanceStateKind instance_state;
        Time_t source_timestamp;
        InstanceHandle_t instance_handle;
        InstanceHandle_t publication_handle;
        long disposed_generation_count;
        long no_writers_generation_count;
        long sample_rank;
        long generation_rank;
        long absolute_generation_rank;
        boolean valid_data;
    };

    typedef sequence<SampleInfo> SampleInfoSeq;

};

#endif  /* DDS_DCPS_CORE_IDL */