1 #include
<tao
/DoubleSeq.pidl
>
2 #include
<tao
/StringSeq.pidl
>
3 #include
"dds/DdsDcpsCore.idl"
11 // A common definition for timestamps
17 typedef sequence
<TimeStamp
> TimeStampSeq
;
19 typedef sequence
<string> StringSeq
;
20 typedef sequence
<StringSeq
> StringSeqSeq
;
22 typedef sequence
<double> DoubleSeq
;
24 enum PropertyValueKind
{ PVK_TIME
, PVK_TIME_SEQ
, PVK_STRING
, PVK_STRING_SEQ
, PVK_STRING_SEQ_SEQ
, PVK_DOUBLE
, PVK_DOUBLE_SEQ
, PVK_ULL
};
25 union PropertyValue
switch (PropertyValueKind
) {
29 TimeStampSeq time_seq_prop
;
33 StringSeq string_seq_prop
;
34 case PVK_STRING_SEQ_SEQ
:
35 StringSeqSeq string_seq_seq_prop
;
39 DoubleSeq double_seq_prop
;
41 unsigned long long ull_prop
;
49 typedef sequence
<Property
> PropertySeq
;
52 // QoS Library Section
55 struct TopicFilteredDataWriterQos
{
56 string filter_expression
;
57 DDS
::DataWriterQos qos
;
60 typedef sequence
<TopicFilteredDataWriterQos
> TopicFilteredDataWriterQosSeq
;
62 struct TopicFilteredDataReaderQos
{
63 string filter_expression
;
64 DDS
::DataReaderQos qos
;
67 typedef sequence
<TopicFilteredDataReaderQos
> TopicFilteredDataReaderQosSeq
;
72 DDS
::DataWriterQos datawriter_qos
;
73 DDS
::DataReaderQos datareader_qos
;
74 TopicFilteredDataWriterQosSeq topic_filtered_datawriter_qos
;
75 TopicFilteredDataReaderQosSeq topic_filtered_datareader_qos
;
80 QosProfiles qos_profiles
;
81 DDS
::DataWriterQos datawriter_qos
; // shorthand for a single profile with a single qos
82 DDS
::DataReaderQos datareader_qos
; // shorthand for a single profile with a single qos
89 struct PropertyQosPolicyMask
{
91 boolean has_binary_value
;
94 struct UserDataQosPolicyMask
{
98 struct GroupDataQosPolicyMask
{
102 struct TopicDataQosPolicyMask
{
106 struct PartitionQosPolicyMask
{
110 struct DurabilityQosPolicyMask
{
114 struct DurabilityServiceQosPolicyMask
{
115 boolean has_service_cleanup_delay
;
116 boolean has_history_kind
;
117 boolean has_history_depth
;
118 boolean has_max_samples
;
119 boolean has_max_instances
;
120 boolean has_max_samples_per_instance
;
123 struct DeadlineQosPolicyMask
{
127 struct LatencyBudgetQosPolicyMask
{
128 boolean has_duration
;
131 struct LivelinessQosPolicyMask
{
133 boolean has_lease_duration
;
136 struct ReliabilityQosPolicyMask
{
138 boolean has_max_blocking_time
;
141 struct DestinationOrderQosPolicyMask
{
145 struct HistoryQosPolicyMask
{
150 struct ResourceLimitsQosPolicyMask
{
151 boolean has_max_samples
;
152 boolean has_max_instances
;
153 boolean has_max_samples_per_instance
;
156 struct TransportPriorityQosPolicyMask
{
160 struct LifespanQosPolicyMask
{
161 boolean has_duration
;
164 struct OwnershipQosPolicyMask
{
168 struct OwnershipStrengthQosPolicyMask
{
172 struct PresentationQosPolicyMask
{
173 boolean has_access_scope
;
174 boolean has_coherent_access
;
175 boolean has_ordered_access
;
178 struct TimeBasedFilterQosPolicyMask
{
179 boolean has_minimum_separation
;
182 struct TopicQosMask
{
183 TopicDataQosPolicyMask topic_data
;
184 DurabilityQosPolicyMask durability
;
185 DurabilityServiceQosPolicyMask durability_service
;
186 DeadlineQosPolicyMask deadline
;
187 LatencyBudgetQosPolicyMask latency_budget
;
188 LivelinessQosPolicyMask liveliness
;
189 ReliabilityQosPolicyMask reliability
;
190 DestinationOrderQosPolicyMask destination_order
;
191 HistoryQosPolicyMask history
;
192 ResourceLimitsQosPolicyMask resource_limits
;
193 TransportPriorityQosPolicyMask transport_priority
;
194 LifespanQosPolicyMask lifespan
;
195 OwnershipQosPolicyMask ownership
;
198 struct WriterDataLifecycleQosPolicyMask
{
199 boolean has_autodispose_unregistered_instances
;
202 struct DataWriterQosMask
{
203 DurabilityQosPolicyMask durability
;
204 DurabilityServiceQosPolicyMask durability_service
;
205 DeadlineQosPolicyMask deadline
;
206 LatencyBudgetQosPolicyMask latency_budget
;
207 LivelinessQosPolicyMask liveliness
;
208 ReliabilityQosPolicyMask reliability
;
209 DestinationOrderQosPolicyMask destination_order
;
210 HistoryQosPolicyMask history
;
211 ResourceLimitsQosPolicyMask resource_limits
;
212 TransportPriorityQosPolicyMask transport_priority
;
213 LifespanQosPolicyMask lifespan
;
214 UserDataQosPolicyMask user_data
;
215 OwnershipQosPolicyMask ownership
;
216 OwnershipStrengthQosPolicyMask ownership_strength
;
217 WriterDataLifecycleQosPolicyMask writer_data_lifecycle
;
220 struct EntityFactoryQosPolicyMask
{
221 boolean has_autoenable_created_entities
;
224 struct PublisherQosMask
{
225 PresentationQosPolicyMask presentation
;
226 PartitionQosPolicyMask partition
;
227 GroupDataQosPolicyMask group_data
;
228 EntityFactoryQosPolicyMask entity_factory
;
231 struct ReaderDataLifecycleQosPolicyMask
{
232 boolean has_autopurge_nowriter_samples_delay
;
233 boolean has_autopurge_disposed_samples_delay
;
236 struct DataReaderQosMask
{
237 DurabilityQosPolicyMask durability
;
238 DeadlineQosPolicyMask deadline
;
239 LatencyBudgetQosPolicyMask latency_budget
;
240 LivelinessQosPolicyMask liveliness
;
241 ReliabilityQosPolicyMask reliability
;
242 DestinationOrderQosPolicyMask destination_order
;
243 HistoryQosPolicyMask history
;
244 ResourceLimitsQosPolicyMask resource_limits
;
245 UserDataQosPolicyMask user_data
;
246 OwnershipQosPolicyMask ownership
;
247 TimeBasedFilterQosPolicyMask time_based_filter
;
248 ReaderDataLifecycleQosPolicyMask reader_data_lifecycle
;
251 struct SubscriberQosMask
{
252 PresentationQosPolicyMask presentation
;
253 PartitionQosPolicyMask partition
;
254 GroupDataQosPolicyMask group_data
;
255 EntityFactoryQosPolicyMask entity_factory
;
258 struct DomainParticipantFactoryQosMask
{
259 EntityFactoryQosPolicyMask entity_factory
;
262 struct DomainParticipantQosMask
{
263 UserDataQosPolicyMask user_data
;
264 EntityFactoryQosPolicyMask entity_factory
;
265 PropertyQosPolicyMask property
;
269 // Configuration Section
274 struct ConfigProperty
{
279 typedef sequence
<ConfigProperty
> ConfigPropertySeq
;
283 struct ConfigSection
{
285 ConfigPropertySeq properties
;
288 typedef sequence
<ConfigSection
> ConfigSectionSeq
;
292 struct DataWriterConfig
{
295 string listener_type_name
;
296 unsigned long listener_status_mask
;
297 PropertySeq listener_properties
;
298 string transport_config_name
;
299 DDS
::DataWriterQos qos
;
300 DataWriterQosMask qos_mask
;
304 typedef sequence
<DataWriterConfig
> DataWriterConfigSeq
;
308 struct DataReaderConfig
{
311 string listener_type_name
;
312 unsigned long listener_status_mask
;
313 PropertySeq listener_properties
;
314 string transport_config_name
;
315 DDS
::DataReaderQos qos
;
316 DataReaderQosMask qos_mask
;
320 typedef sequence
<DataReaderConfig
> DataReaderConfigSeq
;
324 struct PublisherConfig
{
326 string listener_type_name
;
327 unsigned long listener_status_mask
;
328 PropertySeq listener_properties
;
329 string transport_config_name
;
330 DDS
::PublisherQos qos
;
331 PublisherQosMask qos_mask
;
332 DataWriterConfigSeq datawriters
;
335 typedef sequence
<PublisherConfig
> PublisherConfigSeq
;
339 struct SubscriberConfig
{
341 string listener_type_name
;
342 unsigned long listener_status_mask
;
343 PropertySeq listener_properties
;
344 string transport_config_name
;
345 DDS
::SubscriberQos qos
;
346 SubscriberQosMask qos_mask
;
347 DataReaderConfigSeq datareaders
;
350 typedef sequence
<SubscriberConfig
> SubscriberConfigSeq
;
354 struct ContentFilteredTopic
{
356 string cft_expression
;
357 DDS
::StringSeq cft_parameters
;
360 typedef sequence
<ContentFilteredTopic
> ContentFilteredTopicSeq
;
366 TopicQosMask qos_mask
;
367 string listener_type_name
;
368 unsigned long listener_status_mask
;
369 PropertySeq listener_properties
;
370 string transport_config_name
;
371 ContentFilteredTopicSeq content_filtered_topics
;
374 typedef sequence
<TopicConfig
> TopicConfigSeq
;
378 struct ParticipantConfig
{
380 unsigned short domain
;
381 DDS
::DomainParticipantQos qos
;
382 DomainParticipantQosMask qos_mask
;
383 string listener_type_name
;
384 unsigned long listener_status_mask
;
385 PropertySeq listener_properties
;
386 string transport_config_name
;
387 StringSeq type_names
;
388 TopicConfigSeq topics
;
389 PublisherConfigSeq publishers
;
390 SubscriberConfigSeq subscribers
;
393 typedef sequence
<ParticipantConfig
> ParticipantConfigSeq
;
398 struct ProcessConfig
{
400 ConfigSectionSeq config_sections
;
401 ParticipantConfigSeq participants
;
408 struct DataReaderReport
{
409 PropertySeq properties
;
413 typedef sequence
<DataReaderReport
> DataReaderReportSeq
;
415 struct DataWriterReport
{
416 PropertySeq properties
;
420 typedef sequence
<DataWriterReport
> DataWriterReportSeq
;
422 struct SubscriberReport
{
423 DataReaderReportSeq datareaders
;
426 typedef sequence
<SubscriberReport
> SubscriberReportSeq
;
428 struct PublisherReport
{
429 DataWriterReportSeq datawriters
;
432 typedef sequence
<PublisherReport
> PublisherReportSeq
;
434 struct ParticipantReport
{
435 SubscriberReportSeq subscribers
;
436 PublisherReportSeq publishers
;
439 typedef sequence
<ParticipantReport
> ParticipantReportSeq
;
441 struct ProcessReport
{
442 ParticipantReportSeq participants
;