DdsDcpsCore.idl
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008 #ifndef OPENDDS_DCPS_CORE_IDL
00009 #define OPENDDS_DCPS_CORE_IDL
00010
00011
00012
00013 #include "tao/StringSeq.pidl"
00014 #include "tao/LongSeq.pidl"
00015
00016 #define HANDLE_TYPE_NATIVE long
00017 #define BUILTIN_TOPIC_KEY_TYPE_NATIVE long
00018
00019 module DDS {
00020
00021
00022 #pragma DCPS_SUPPORT_ZERO_COPY_READ
00023
00024 typedef sequence<string> StringSeq;
00025 typedef HANDLE_TYPE_NATIVE InstanceHandle_t;
00026 typedef BUILTIN_TOPIC_KEY_TYPE_NATIVE BuiltinTopicKeyValue[3];
00027
00028 typedef sequence<InstanceHandle_t> InstanceHandleSeq;
00029
00030 typedef long QosPolicyId_t;
00031
00032 struct QosPolicyCount {
00033 QosPolicyId_t policy_id;
00034 long count;
00035 };
00036
00037 typedef sequence<QosPolicyCount> QosPolicyCountSeq;
00038
00039 typedef sequence<octet> OctetSeq;
00040
00041 struct Duration_t {
00042 long sec;
00043 unsigned long nanosec;
00044 };
00045
00046 const long DURATION_INFINITE_SEC = 0x7fffffff;
00047 const unsigned long DURATION_INFINITE_NSEC = 0x7fffffff;
00048
00049 const long DURATION_ZERO_SEC = 0;
00050 const unsigned long DURATION_ZERO_NSEC = 0;
00051
00052
00053
00054
00055
00056 struct Property_t {
00057 string name;
00058 string value;
00059 boolean propagate;
00060 };
00061 typedef sequence<Property_t> PropertySeq;
00062
00063 struct BinaryProperty_t {
00064 string name;
00065 OctetSeq value;
00066 boolean propagate;
00067 };
00068 typedef sequence<BinaryProperty_t> BinaryPropertySeq;
00069
00070
00071 struct PropertyQosPolicy {
00072 PropertySeq value;
00073 BinaryPropertySeq binary_value;
00074 };
00075
00076 struct UserDataQosPolicy {
00077 OctetSeq value;
00078 };
00079
00080 struct GroupDataQosPolicy {
00081 OctetSeq value;
00082 };
00083
00084 struct TopicDataQosPolicy {
00085 OctetSeq value;
00086 };
00087
00088 struct PartitionQosPolicy {
00089 StringSeq name;
00090 };
00091
00092 enum HistoryQosPolicyKind {
00093 KEEP_LAST_HISTORY_QOS,
00094 KEEP_ALL_HISTORY_QOS
00095 };
00096
00097 enum DurabilityQosPolicyKind {
00098 VOLATILE_DURABILITY_QOS,
00099 TRANSIENT_LOCAL_DURABILITY_QOS,
00100 TRANSIENT_DURABILITY_QOS,
00101 PERSISTENT_DURABILITY_QOS
00102 };
00103
00104 struct DurabilityQosPolicy {
00105 DurabilityQosPolicyKind kind;
00106 };
00107
00108 struct DurabilityServiceQosPolicy {
00109 Duration_t service_cleanup_delay;
00110 HistoryQosPolicyKind history_kind;
00111 long history_depth;
00112 long max_samples;
00113 long max_instances;
00114 long max_samples_per_instance;
00115 };
00116
00117 struct DeadlineQosPolicy {
00118 Duration_t period;
00119 };
00120
00121 struct LatencyBudgetQosPolicy {
00122 Duration_t duration;
00123 };
00124
00125 enum LivelinessQosPolicyKind {
00126 AUTOMATIC_LIVELINESS_QOS,
00127 MANUAL_BY_PARTICIPANT_LIVELINESS_QOS,
00128 MANUAL_BY_TOPIC_LIVELINESS_QOS
00129 };
00130
00131 struct LivelinessQosPolicy {
00132 LivelinessQosPolicyKind kind;
00133 Duration_t lease_duration;
00134 };
00135
00136 enum ReliabilityQosPolicyKind {
00137 BEST_EFFORT_RELIABILITY_QOS,
00138 RELIABLE_RELIABILITY_QOS
00139 };
00140
00141 struct ReliabilityQosPolicy {
00142 ReliabilityQosPolicyKind kind;
00143 Duration_t max_blocking_time;
00144 };
00145
00146 enum DestinationOrderQosPolicyKind {
00147 BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS,
00148 BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS
00149 };
00150
00151 struct DestinationOrderQosPolicy {
00152 DestinationOrderQosPolicyKind kind;
00153 };
00154
00155 struct HistoryQosPolicy {
00156 HistoryQosPolicyKind kind;
00157 long depth;
00158 };
00159
00160 struct ResourceLimitsQosPolicy {
00161 long max_samples;
00162 long max_instances;
00163 long max_samples_per_instance;
00164 };
00165
00166 struct TransportPriorityQosPolicy {
00167 long value;
00168 };
00169
00170 struct LifespanQosPolicy {
00171 Duration_t duration;
00172 };
00173
00174 enum OwnershipQosPolicyKind {
00175 SHARED_OWNERSHIP_QOS,
00176 EXCLUSIVE_OWNERSHIP_QOS
00177 };
00178
00179 struct OwnershipQosPolicy {
00180 OwnershipQosPolicyKind kind;
00181 };
00182
00183 struct OwnershipStrengthQosPolicy {
00184 long value;
00185 };
00186
00187 enum PresentationQosPolicyAccessScopeKind {
00188 INSTANCE_PRESENTATION_QOS,
00189 TOPIC_PRESENTATION_QOS,
00190 GROUP_PRESENTATION_QOS
00191 };
00192
00193 struct PresentationQosPolicy {
00194 PresentationQosPolicyAccessScopeKind access_scope;
00195 boolean coherent_access;
00196 boolean ordered_access;
00197 };
00198
00199 struct TimeBasedFilterQosPolicy {
00200 Duration_t minimum_separation;
00201 };
00202
00203 struct TopicQos {
00204 TopicDataQosPolicy topic_data;
00205 DurabilityQosPolicy durability;
00206 DurabilityServiceQosPolicy durability_service;
00207 DeadlineQosPolicy deadline;
00208 LatencyBudgetQosPolicy latency_budget;
00209 LivelinessQosPolicy liveliness;
00210 ReliabilityQosPolicy reliability;
00211 DestinationOrderQosPolicy destination_order;
00212 HistoryQosPolicy history;
00213 ResourceLimitsQosPolicy resource_limits;
00214 TransportPriorityQosPolicy transport_priority;
00215 LifespanQosPolicy lifespan;
00216 OwnershipQosPolicy ownership;
00217 };
00218
00219 struct WriterDataLifecycleQosPolicy {
00220 boolean autodispose_unregistered_instances;
00221 };
00222
00223 struct DataWriterQos {
00224 DurabilityQosPolicy durability;
00225 DurabilityServiceQosPolicy durability_service;
00226 DeadlineQosPolicy deadline;
00227 LatencyBudgetQosPolicy latency_budget;
00228 LivelinessQosPolicy liveliness;
00229 ReliabilityQosPolicy reliability;
00230 DestinationOrderQosPolicy destination_order;
00231 HistoryQosPolicy history;
00232 ResourceLimitsQosPolicy resource_limits;
00233 TransportPriorityQosPolicy transport_priority;
00234 LifespanQosPolicy lifespan;
00235 UserDataQosPolicy user_data;
00236 OwnershipQosPolicy ownership;
00237 OwnershipStrengthQosPolicy ownership_strength;
00238 WriterDataLifecycleQosPolicy writer_data_lifecycle;
00239 };
00240
00241 struct EntityFactoryQosPolicy {
00242 boolean autoenable_created_entities;
00243 };
00244
00245 struct PublisherQos {
00246 PresentationQosPolicy presentation;
00247 PartitionQosPolicy partition;
00248 GroupDataQosPolicy group_data;
00249 EntityFactoryQosPolicy entity_factory;
00250 };
00251
00252 struct ReaderDataLifecycleQosPolicy {
00253 Duration_t autopurge_nowriter_samples_delay;
00254 Duration_t autopurge_disposed_samples_delay;
00255 };
00256
00257 struct DataReaderQos {
00258 DurabilityQosPolicy durability;
00259 DeadlineQosPolicy deadline;
00260 LatencyBudgetQosPolicy latency_budget;
00261 LivelinessQosPolicy liveliness;
00262 ReliabilityQosPolicy reliability;
00263 DestinationOrderQosPolicy destination_order;
00264 HistoryQosPolicy history;
00265 ResourceLimitsQosPolicy resource_limits;
00266 UserDataQosPolicy user_data;
00267 OwnershipQosPolicy ownership;
00268 TimeBasedFilterQosPolicy time_based_filter;
00269 ReaderDataLifecycleQosPolicy reader_data_lifecycle;
00270 };
00271
00272 struct SubscriberQos {
00273 PresentationQosPolicy presentation;
00274 PartitionQosPolicy partition;
00275 GroupDataQosPolicy group_data;
00276 EntityFactoryQosPolicy entity_factory;
00277 };
00278
00279 struct DomainParticipantFactoryQos {
00280 EntityFactoryQosPolicy entity_factory;
00281 };
00282
00283 struct DomainParticipantQos {
00284 UserDataQosPolicy user_data;
00285 EntityFactoryQosPolicy entity_factory;
00286 PropertyQosPolicy property;
00287 };
00288
00289 struct BuiltinTopicKey_t {
00290 BuiltinTopicKeyValue value;
00291 };
00292
00293
00294 #if !defined (DDS_HAS_MINIMUM_BIT)
00295
00296 #pragma DCPS_DATA_TYPE "DDS::ParticipantBuiltinTopicData"
00297 #pragma DCPS_DATA_KEY "DDS::ParticipantBuiltinTopicData key.value[0]"
00298 #pragma DCPS_DATA_KEY "DDS::ParticipantBuiltinTopicData key.value[1]"
00299 #pragma DCPS_DATA_KEY "DDS::ParticipantBuiltinTopicData key.value[2]"
00300 #endif
00301
00302 struct ParticipantBuiltinTopicData {
00303 BuiltinTopicKey_t key;
00304 UserDataQosPolicy user_data;
00305 };
00306
00307 #if !defined (DDS_HAS_MINIMUM_BIT)
00308
00309 #pragma DCPS_DATA_TYPE "DDS::PublicationBuiltinTopicData"
00310 #pragma DCPS_DATA_KEY "DDS::PublicationBuiltinTopicData key.value[0]"
00311 #pragma DCPS_DATA_KEY "DDS::PublicationBuiltinTopicData key.value[1]"
00312 #pragma DCPS_DATA_KEY "DDS::PublicationBuiltinTopicData key.value[2]"
00313 #endif
00314 struct PublicationBuiltinTopicData {
00315 BuiltinTopicKey_t key;
00316 BuiltinTopicKey_t participant_key;
00317 string topic_name;
00318 string type_name;
00319 DurabilityQosPolicy durability;
00320 DurabilityServiceQosPolicy durability_service;
00321 DeadlineQosPolicy deadline;
00322 LatencyBudgetQosPolicy latency_budget;
00323 LivelinessQosPolicy liveliness;
00324 ReliabilityQosPolicy reliability;
00325 LifespanQosPolicy lifespan;
00326 UserDataQosPolicy user_data;
00327 OwnershipQosPolicy ownership;
00328 OwnershipStrengthQosPolicy ownership_strength;
00329 DestinationOrderQosPolicy destination_order;
00330 PresentationQosPolicy presentation;
00331 PartitionQosPolicy partition;
00332 TopicDataQosPolicy topic_data;
00333 GroupDataQosPolicy group_data;
00334 };
00335
00336 #if !defined (DDS_HAS_MINIMUM_BIT)
00337
00338 #pragma DCPS_DATA_TYPE "DDS::SubscriptionBuiltinTopicData"
00339 #pragma DCPS_DATA_KEY "DDS::SubscriptionBuiltinTopicData key.value[0]"
00340 #pragma DCPS_DATA_KEY "DDS::SubscriptionBuiltinTopicData key.value[1]"
00341 #pragma DCPS_DATA_KEY "DDS::SubscriptionBuiltinTopicData key.value[2]"
00342 #endif
00343 struct SubscriptionBuiltinTopicData {
00344 BuiltinTopicKey_t key;
00345 BuiltinTopicKey_t participant_key;
00346 string topic_name;
00347 string type_name;
00348 DurabilityQosPolicy durability;
00349 DeadlineQosPolicy deadline;
00350 LatencyBudgetQosPolicy latency_budget;
00351 LivelinessQosPolicy liveliness;
00352 ReliabilityQosPolicy reliability;
00353 OwnershipQosPolicy ownership;
00354 DestinationOrderQosPolicy destination_order;
00355 UserDataQosPolicy user_data;
00356 TimeBasedFilterQosPolicy time_based_filter;
00357 PresentationQosPolicy presentation;
00358 PartitionQosPolicy partition;
00359 TopicDataQosPolicy topic_data;
00360 GroupDataQosPolicy group_data;
00361 };
00362
00363 #if !defined (DDS_HAS_MINIMUM_BIT)
00364
00365 #pragma DCPS_DATA_TYPE "DDS::TopicBuiltinTopicData"
00366 #pragma DCPS_DATA_KEY "DDS::TopicBuiltinTopicData key.value[0]"
00367 #pragma DCPS_DATA_KEY "DDS::TopicBuiltinTopicData key.value[1]"
00368 #pragma DCPS_DATA_KEY "DDS::TopicBuiltinTopicData key.value[2]"
00369 #endif
00370
00371 struct TopicBuiltinTopicData {
00372 BuiltinTopicKey_t key;
00373 string name;
00374 string type_name;
00375 DurabilityQosPolicy durability;
00376 DurabilityServiceQosPolicy durability_service;
00377 DeadlineQosPolicy deadline;
00378 LatencyBudgetQosPolicy latency_budget;
00379 LivelinessQosPolicy liveliness;
00380 ReliabilityQosPolicy reliability;
00381 TransportPriorityQosPolicy transport_priority;
00382 LifespanQosPolicy lifespan;
00383 DestinationOrderQosPolicy destination_order;
00384 HistoryQosPolicy history;
00385 ResourceLimitsQosPolicy resource_limits;
00386 OwnershipQosPolicy ownership;
00387 TopicDataQosPolicy topic_data;
00388 };
00389
00390
00391 typedef unsigned long SampleStateKind;
00392
00393 const SampleStateKind READ_SAMPLE_STATE = 0x0001 << 0;
00394 const SampleStateKind NOT_READ_SAMPLE_STATE = 0x0001 << 1;
00395
00396
00397 typedef unsigned long SampleStateMask;
00398 const SampleStateMask ANY_SAMPLE_STATE = 0xffff;
00399
00400
00401 typedef unsigned long ViewStateKind;
00402 const ViewStateKind NEW_VIEW_STATE = 0x0001 << 0;
00403 const ViewStateKind NOT_NEW_VIEW_STATE = 0x0001 << 1;
00404
00405
00406 typedef unsigned long ViewStateMask;
00407 const ViewStateMask ANY_VIEW_STATE = 0xffff;
00408
00409
00410 typedef unsigned long InstanceStateKind;
00411 const InstanceStateKind ALIVE_INSTANCE_STATE = 0x0001 << 0;
00412 const InstanceStateKind NOT_ALIVE_DISPOSED_INSTANCE_STATE = 0x0001 << 1;
00413 const InstanceStateKind NOT_ALIVE_NO_WRITERS_INSTANCE_STATE = 0x0001 << 2;
00414
00415
00416 typedef unsigned long InstanceStateMask;
00417 const InstanceStateMask ANY_INSTANCE_STATE = 0xffff;
00418 const InstanceStateMask NOT_ALIVE_INSTANCE_STATE = 0x006;
00419
00420 struct Time_t {
00421 long sec;
00422 unsigned long nanosec;
00423 };
00424
00425 const long TIME_INVALID_SEC = -1;
00426 const unsigned long TIME_INVALID_NSEC = 0xffffffff;
00427
00428 struct SampleInfo {
00429 SampleStateKind sample_state;
00430 ViewStateKind view_state;
00431 InstanceStateKind instance_state;
00432 Time_t source_timestamp;
00433 InstanceHandle_t instance_handle;
00434 InstanceHandle_t publication_handle;
00435 long disposed_generation_count;
00436 long no_writers_generation_count;
00437 long sample_rank;
00438 long generation_rank;
00439 long absolute_generation_rank;
00440 boolean valid_data;
00441 long long opendds_reserved_publication_seq;
00442 };
00443
00444 typedef sequence<SampleInfo> SampleInfoSeq;
00445
00446 };
00447
00448 #endif