dds-xtypes_discovery.idl 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298
  1. /* dds-xtypes_discovery.idl */
  2. // The types in this file shall be serialized with XCDR encoding version 1
  3. module DDS {
  4. @extensibility(APPENDABLE) @nested
  5. struct BuiltinTopicKey_t {
  6. octet value[16];
  7. };
  8. @extensibility(FINAL) @nested
  9. struct Duration_t {
  10. long sec; unsigned long nanosec;
  11. };
  12. @extensibility(APPENDABLE) @nested
  13. struct DeadlineQosPolicy {
  14. Duration_t period;
  15. };
  16. enum DestinationOrderQosPolicyKind {
  17. BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS,
  18. BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS
  19. };
  20. @extensibility(APPENDABLE) @nested
  21. struct DestinationOrderQosPolicy {
  22. DestinationOrderQosPolicyKind kind;
  23. };
  24. enum DurabilityQosPolicyKind {
  25. VOLATILE_DURABILITY_QOS,
  26. TRANSIENT_LOCAL_DURABILITY_QOS,
  27. TRANSIENT_DURABILITY_QOS,
  28. PERSISTENT_DURABILITY_QOS
  29. };
  30. @extensibility(APPENDABLE) @nested
  31. struct DurabilityQosPolicy {
  32. DurabilityQosPolicyKind kind;
  33. };
  34. enum HistoryQosPolicyKind {
  35. KEEP_LAST_HISTORY_QOS,
  36. KEEP_ALL_HISTORY_QOS
  37. };
  38. @extensibility(APPENDABLE) @nested
  39. struct HistoryQosPolicy {
  40. HistoryQosPolicyKind kind;
  41. long depth;
  42. };
  43. @extensibility(APPENDABLE) @nested
  44. struct DurabilityServiceQosPolicy {
  45. Duration_t service_cleanup_delay;
  46. HistoryQosPolicyKind history_kind;
  47. long history_depth;
  48. long max_samples;
  49. long max_instances;
  50. long max_samples_per_instance;
  51. };
  52. @extensibility(APPENDABLE) @nested
  53. struct GroupDataQosPolicy {
  54. ByteSeq value;
  55. };
  56. @extensibility(APPENDABLE) @nested
  57. struct LatencyBudgetQosPolicy {
  58. Duration_t duration;
  59. };
  60. @extensibility(APPENDABLE) @nested
  61. struct LifespanQosPolicy {
  62. Duration_t duration;
  63. };
  64. enum LivelinessQosPolicyKind {
  65. AUTOMATIC_LIVELINESS_QOS,
  66. MANUAL_BY_PARTICIPANT_LIVELINESS_QOS,
  67. MANUAL_BY_TOPIC_LIVELINESS_QOS
  68. };
  69. @extensibility(APPENDABLE) @nested
  70. struct LivelinessQosPolicy {
  71. LivelinessQosPolicyKind kind;
  72. Duration_t lease_duration;
  73. };
  74. enum OwnershipQosPolicyKind {
  75. SHARED_OWNERSHIP_QOS,
  76. EXCLUSIVE_OWNERSHIP_QOS
  77. };
  78. @extensibility(APPENDABLE) @nested
  79. struct OwnershipQosPolicy {
  80. OwnershipQosPolicyKind kind;
  81. };
  82. @extensibility(APPENDABLE) @nested
  83. struct OwnershipStrengthQosPolicy {
  84. long value;
  85. };
  86. @extensibility(APPENDABLE) @nested
  87. struct PartitionQosPolicy {
  88. StringSeq name;
  89. };
  90. enum PresentationQosPolicyAccessScopeKind {
  91. INSTANCE_PRESENTATION_QOS,
  92. TOPIC_PRESENTATION_QOS,
  93. GROUP_PRESENTATION_QOS
  94. };
  95. @extensibility(APPENDABLE) @nested
  96. struct PresentationQosPolicy {
  97. PresentationQosPolicyAccessScopeKind access_scope;
  98. boolean coherent_access;
  99. boolean ordered_access;
  100. };
  101. enum ReliabilityQosPolicyKind {
  102. BEST_EFFORT_RELIABILITY_QOS,
  103. RELIABLE_RELIABILITY_QOS
  104. };
  105. @extensibility(APPENDABLE) @nested
  106. struct ReliabilityQosPolicy {
  107. ReliabilityQosPolicyKind kind;
  108. Duration_t max_blocking_time;
  109. };
  110. @extensibility(APPENDABLE) @nested
  111. struct ResourceLimitsQosPolicy {
  112. long max_samples;
  113. long max_instances;
  114. long max_samples_per_instance;
  115. };
  116. @extensibility(APPENDABLE) @nested
  117. struct TimeBasedFilterQosPolicy {
  118. Duration_t minimum_separation;
  119. };
  120. @extensibility(APPENDABLE) @nested
  121. struct TopicDataQosPolicy {
  122. ByteSeq value;
  123. };
  124. @extensibility(APPENDABLE) @nested
  125. struct TransportPriorityQosPolicy {
  126. long value;
  127. };
  128. @extensibility(APPENDABLE) @nested
  129. struct UserDataQosPolicy {
  130. ByteSeq value;
  131. };
  132. @extensibility(MUTABLE)
  133. struct ParticipantBuiltinTopicData {
  134. @id(0x0050) @key BuiltinTopicKey_t key;
  135. @id(0x002C) UserDataQosPolicy user_data;
  136. };
  137. typedef short DataRepresentationId_t;
  138. const DataRepresentationId_t XCDR_DATA_REPRESENTATION = 0;
  139. const DataRepresentationId_t XML_DATA_REPRESENTATION = 1;
  140. const DataRepresentationId_t XCDR2_DATA_REPRESENTATION = 2;
  141. typedef sequence<DataRepresentationId_t> DataRepresentationIdSeq;
  142. const QosPolicyId_t DATA_REPRESENTATION_QOS_POLICY_ID = 23;
  143. const string DATA_REPRESENTATION_QOS_POLICY_NAME = "DataRepresentation";
  144. @extensibility(APPENDABLE) @nested
  145. struct DataRepresentationQosPolicy {
  146. DataRepresentationIdSeq value;
  147. };
  148. @bit_bound(16) enum TypeConsistencyKind {
  149. DISALLOW_TYPE_COERCION,
  150. ALLOW_TYPE_COERCION
  151. };
  152. const QosPolicyId_t TYPE_CONSISTENCY_ENFORCEMENT_QOS_POLICY_ID = 24;
  153. const string TYPE_CONSISTENCY_ENFORCEMENT_QOS_POLICY_NAME = "TypeConsistencyEnforcement";
  154. @extensibility(APPENDABLE) @nested
  155. struct TypeConsistencyEnforcementQosPolicy {
  156. TypeConsistencyKind kind;
  157. boolean ignore_sequence_bounds;
  158. boolean ignore_string_bounds;
  159. boolean ignore_member_names;
  160. boolean prevent_type_widening;
  161. boolean force_type_validation;
  162. };
  163. @extensibility(MUTABLE)
  164. struct TopicBuiltinTopicData {
  165. @id(0x005A) @key BuiltinTopicKey_t key;
  166. @id(0x0005) ObjectName name;
  167. @id(0x0007) ObjectName type_name;
  168. @id(0x0069) @optional TypeIdV1 type_id; // XTYPES 1.1
  169. @id(0x0072) @optional TypeObjectV1 type; // XTYPES 1.1
  170. @id(0x0075) @optional XTypes::TypeInformation type_information;
  171. // XTYPES 1.2
  172. @id(0x001D) DurabilityQosPolicy durability;
  173. @id(0x001E) DurabilityServiceQosPolicy durability_service;
  174. @id(0x0023) DeadlineQosPolicy deadline;
  175. @id(0x0027) LatencyBudgetQosPolicy latency_budget;
  176. @id(0x001B) LivelinessQosPolicy liveliness;
  177. @id(0x001A) ReliabilityQosPolicy reliability;
  178. @id(0x0049) TransportPriorityQosPolicy transport_priority;
  179. @id(0x002B) LifespanQosPolicy lifespan;
  180. @id(0x0025) DestinationOrderQosPolicy destination_order;
  181. @id(0x0040) HistoryQosPolicy history;
  182. @id(0x0041) ResourceLimitsQosPolicy resource_limits;
  183. @id(0x001F) OwnershipQosPolicy ownership;
  184. @id(0x002E) TopicDataQosPolicy topic_data;
  185. @id(0x0073) DataRepresentationQosPolicy representation;
  186. };
  187. @extensibility(MUTABLE) struct TopicQos {
  188. // ...
  189. DataRepresentationQosPolicy representation;
  190. };
  191. @extensibility(MUTABLE)
  192. struct PublicationBuiltinTopicData {
  193. @id(0x005A) @key BuiltinTopicKey_t key;
  194. @id(0x0050) BuiltinTopicKey_t participant_key;
  195. @id(0x0005) ObjectName topic_name;
  196. @id(0x0007) ObjectName type_name;
  197. @id(0x0069) @optional TypeIdV1 type_id; // XTYPES 1.1
  198. @id(0x0072) @optional TypeObjectV1 type; // XTYPES 1.1
  199. @id(0x0075) @optional XTypes::TypeInformation type_information;
  200. // XTYPES 1.2
  201. @id(0x001D) DurabilityQosPolicy durability;
  202. @id(0x001E) DurabilityServiceQosPolicy durability_service;
  203. @id(0x0023) DeadlineQosPolicy deadline;
  204. @id(0x0027) LatencyBudgetQosPolicy latency_budget;
  205. @id(0x001B) LivelinessQosPolicy liveliness;
  206. @id(0x001A) ReliabilityQosPolicy reliability;
  207. @id(0x002B) LifespanQosPolicy lifespan;
  208. @id(0x002C) UserDataQosPolicy user_data;
  209. @id(0x001F) OwnershipQosPolicy ownership;
  210. @id(0x0006) OwnershipStrengthQosPolicy ownership_strength;
  211. @id(0x0025) DestinationOrderQosPolicy destination_order;
  212. @id(0x0021) PresentationQosPolicy presentation;
  213. @id(0x0029) PartitionQosPolicy partition;
  214. @id(0x002E) TopicDataQosPolicy topic_data;
  215. @id(0x002D) GroupDataQosPolicy group_data;
  216. @id(0x0073) DataRepresentationQosPolicy representation;
  217. };
  218. @extensibility(MUTABLE)
  219. struct DataWriterQos {
  220. // ... DataRepresentationQosPolicy representation;
  221. };
  222. @extensibility(MUTABLE)
  223. struct SubscriptionBuiltinTopicData {
  224. @id(0x005A) @key BuiltinTopicKey_t key;
  225. @id(0x0050) BuiltinTopicKey_t participant_key;
  226. @id(0x0005) ObjectName topic_name;
  227. @id(0x0007) ObjectName type_name;
  228. @id(0x0069) @optional TypeIdV1 type_id; // XTYPES 1.1
  229. @id(0x0072) @optional TypeObjectV1 type; // XTYPES 1.1
  230. @id(0x0075) @optional XTypes::TypeInformation type_information;
  231. // XTYPES 1.2
  232. @id(0x001D) DurabilityQosPolicy durability;
  233. @id(0x0023) DeadlineQosPolicy deadline;
  234. @id(0x0027) LatencyBudgetQosPolicy latency_budget;
  235. @id(0x001B) LivelinessQosPolicy liveliness;
  236. @id(0x001A) ReliabilityQosPolicy reliability;
  237. @id(0x001F) OwnershipQosPolicy ownership;
  238. @id(0x0025) DestinationOrderQosPolicy destination_order;
  239. @id(0x002C) UserDataQosPolicy user_data;
  240. @id(0x0004) TimeBasedFilterQosPolicy time_based_filter;
  241. @id(0x0021) PresentationQosPolicy presentation;
  242. @id(0x0029) PartitionQosPolicy partition;
  243. @id(0x002E) TopicDataQosPolicy topic_data;
  244. @id(0x002D) GroupDataQosPolicy group_data;
  245. @id(0x0073) DataRepresentationQosPolicy representation;
  246. @id(0x0074) TypeConsistencyEnforcementQosPolicy type_consistency;
  247. };
  248. @extensibility(MUTABLE)
  249. struct DataReaderQos {
  250. // ...
  251. DataRepresentationQosPolicy representation;
  252. TypeConsistencyEnforcementQosPolicy type_consistency;
  253. };
  254. }; // end module DDS