108 union TypeObjectHashId switch (octet) {
121 @position(0) TRY_CONSTRUCT1,
122 @position(1) TRY_CONSTRUCT2,
123 @position(2) IS_EXTERNAL,
125 @position(3) IS_OPTIONAL,
126 @position(4) IS_MUST_UNDERSTAND,
128 @position(6) IS_DEFAULT
149 @position(0) IS_FINAL,
150 @position(1) IS_APPENDABLE,
151 @position(2) IS_MUTABLE,
152 @position(3) IS_NESTED,
153 @position(4) IS_AUTOID_HASH
169 union TypeIdentifier;
173 struct StringSTypeDefn {
179 struct StringLTypeDefn {
184 struct PlainCollectionHeader {
185 EquivalenceKind equiv_kind;
186 CollectionElementFlag element_flags;
190 struct PlainSequenceSElemDefn {
191 PlainCollectionHeader header;
193 @external TypeIdentifier element_identifier;
197 struct PlainSequenceLElemDefn {
198 PlainCollectionHeader header;
200 @external TypeIdentifier element_identifier;
204 struct PlainArraySElemDefn {
205 PlainCollectionHeader header;
207 @external TypeIdentifier element_identifier;
211 struct PlainArrayLElemDefn {
212 PlainCollectionHeader header;
214 @external TypeIdentifier element_identifier;
218 struct PlainMapSTypeDefn {
219 PlainCollectionHeader header;
221 @external TypeIdentifier element_identifier;
223 @external TypeIdentifier key_identifier;
227 struct PlainMapLTypeDefn {
228 PlainCollectionHeader header;
230 @external TypeIdentifier element_identifier;
232 @external TypeIdentifier key_identifier;
237 struct StronglyConnectedComponentId {
238 TypeObjectHashId sc_component_id;
245 struct ExtendedTypeDefn {
272 union TypeIdentifier switch (octet) {
294 case TI_STRING8_SMALL:
295 case TI_STRING16_SMALL:
296 StringSTypeDefn string_sdefn;
298 case TI_STRING8_LARGE:
299 case TI_STRING16_LARGE:
300 StringLTypeDefn string_ldefn;
303 case TI_PLAIN_SEQUENCE_SMALL:
304 PlainSequenceSElemDefn seq_sdefn;
305 case TI_PLAIN_SEQUENCE_LARGE:
306 PlainSequenceLElemDefn seq_ldefn;
308 case TI_PLAIN_ARRAY_SMALL:
309 PlainArraySElemDefn array_sdefn;
310 case TI_PLAIN_ARRAY_LARGE:
311 PlainArrayLElemDefn array_ldefn;
313 case TI_PLAIN_MAP_SMALL:
314 PlainMapSTypeDefn map_sdefn;
315 case TI_PLAIN_MAP_LARGE:
316 PlainMapLTypeDefn map_ldefn;
319 case TI_STRONGLY_CONNECTED_COMPONENT:
320 StronglyConnectedComponentId sc_component_id;
325 EquivalenceHash equivalence_hash;
329 default: ExtendedTypeDefn extended_defn;
342 struct ExtendedAnnotationParameterValue {
351 union AnnotationParameterValue switch (octet) {
353 boolean boolean_value;
359 unsigned short uint_16_value;
363 unsigned long uint32_value;
365 long long int64_value;
367 unsigned long long uint64_value;
371 double float64_value;
373 long double float128_value;
379 long enumerated_value;
381 string<ANNOTATION_STR_VALUE_MAX_LEN> string8_value;
383 wstring<ANNOTATION_STR_VALUE_MAX_LEN> string16_value;
385 ExtendedAnnotationParameterValue extended_value;
390 struct AppliedAnnotationParameter {
391 NameHash paramname_hash;
392 AnnotationParameterValue value;
400 struct AppliedAnnotation {
401 TypeIdentifier annotation_typeid;
410 struct AppliedVerbatimAnnotation {
411 string<32> placement;
418 struct AppliedBuiltinMemberAnnotations {
419 @optional string unit;
420 @optional AnnotationParameterValue min;
421 @optional AnnotationParameterValue max;
422 @optional string hash_id;
426 struct CommonStructMember {
428 StructMemberFlag member_flags;
429 TypeIdentifier member_type_id;
434 struct CompleteMemberDetail {
436 @optional AppliedBuiltinMemberAnnotations ann_builtin;
447 struct CompleteStructMember {
448 CommonStructMember common;
449 CompleteMemberDetail detail;
457 struct MinimalStructMember {
458 CommonStructMember common;
459 MinimalMemberDetail detail;
466 struct AppliedBuiltinTypeAnnotations {
467 @optional AppliedVerbatimAnnotation
verbatim;
471 struct MinimalTypeDetail {
476 struct CompleteTypeDetail {
477 @optional AppliedBuiltinTypeAnnotations ann_builtin;
478 @optional AppliedAnnotationSeq ann_custom;
479 QualifiedTypeName type_name;
483 struct CompleteStructHeader {
484 TypeIdentifier base_type;
485 CompleteTypeDetail detail;
489 struct MinimalStructHeader {
490 TypeIdentifier base_type;
491 MinimalTypeDetail detail;
495 struct CompleteStructType {
497 CompleteStructHeader header;
502 struct MinimalStructType {
504 MinimalStructHeader header;
515 struct CommonUnionMember {
518 TypeIdentifier type_id;
524 struct CompleteUnionMember {
525 CommonUnionMember common;
526 CompleteMemberDetail detail;
534 struct MinimalUnionMember {
535 CommonUnionMember common;
536 MinimalMemberDetail detail;
543 struct CommonDiscriminatorMember {
545 TypeIdentifier type_id;
550 struct CompleteDiscriminatorMember {
551 CommonDiscriminatorMember common;
552 @optional AppliedBuiltinTypeAnnotations ann_builtin;
553 @optional AppliedAnnotationSeq ann_custom;
558 struct MinimalDiscriminatorMember {
559 CommonDiscriminatorMember common;
563 struct CompleteUnionHeader {
564 CompleteTypeDetail detail;
568 struct MinimalUnionHeader {
569 MinimalTypeDetail detail;
573 struct CompleteUnionType {
575 CompleteUnionHeader header;
576 CompleteDiscriminatorMember discriminator;
581 struct MinimalUnionType {
583 MinimalUnionHeader header;
584 MinimalDiscriminatorMember discriminator;
590 struct CommonAnnotationParameter {
592 TypeIdentifier member_type_id;
597 struct CompleteAnnotationParameter {
598 CommonAnnotationParameter common;
600 AnnotationParameterValue default_value;
607 struct MinimalAnnotationParameter {
608 CommonAnnotationParameter common;
610 AnnotationParameterValue default_value;
617 struct CompleteAnnotationHeader {
622 struct MinimalAnnotationHeader {
627 struct CompleteAnnotationType {
628 AnnotationTypeFlag annotation_flag;
629 CompleteAnnotationHeader header;
630 CompleteAnnotationParameterSeq member_seq;
634 struct MinimalAnnotationType {
636 MinimalAnnotationHeader header;
642 struct CommonAliasBody {
644 TypeIdentifier related_type;
648 struct CompleteAliasBody {
649 CommonAliasBody common;
650 @optional AppliedBuiltinMemberAnnotations ann_builtin;
655 struct MinimalAliasBody {
656 CommonAliasBody common;
660 struct CompleteAliasHeader {
661 CompleteTypeDetail detail;
665 struct MinimalAliasHeader {
670 struct CompleteAliasType {
672 CompleteAliasHeader header;
673 CompleteAliasBody body;
677 struct MinimalAliasType {
679 MinimalAliasHeader header;
680 MinimalAliasBody body;
685 struct CompleteElementDetail {
686 @optional AppliedBuiltinMemberAnnotations ann_builtin;
691 struct CommonCollectionElement {
697 struct CompleteCollectionElement {
698 CommonCollectionElement common;
699 CompleteElementDetail detail;
703 struct MinimalCollectionElement {
704 CommonCollectionElement common;
708 struct CommonCollectionHeader {
713 struct CompleteCollectionHeader {
714 CommonCollectionHeader common;
715 @optional CompleteTypeDetail detail;
719 struct MinimalCollectionHeader {
720 CommonCollectionHeader common;
725 struct CompleteSequenceType {
727 CompleteCollectionHeader header;
728 CompleteCollectionElement element;
733 struct MinimalSequenceType {
735 MinimalCollectionHeader header;
736 MinimalCollectionElement element;
741 struct CommonArrayHeader {
746 struct CompleteArrayHeader {
747 CommonArrayHeader common;
748 CompleteTypeDetail detail;
752 struct MinimalArrayHeader {
753 CommonArrayHeader common;
757 struct CompleteArrayType {
759 CompleteArrayHeader header;
760 CompleteCollectionElement element;
764 struct MinimalArrayType {
766 MinimalArrayHeader header;
767 MinimalCollectionElement element;
772 struct CompleteMapType {
774 CompleteCollectionHeader header;
775 CompleteCollectionElement key;
776 CompleteCollectionElement element;
780 struct MinimalMapType {
782 MinimalCollectionHeader header;
783 MinimalCollectionElement key;
784 MinimalCollectionElement element;
792 struct CommonEnumeratedLiteral {
799 struct CompleteEnumeratedLiteral {
800 CommonEnumeratedLiteral common;
801 CompleteMemberDetail detail;
809 struct MinimalEnumeratedLiteral {
810 CommonEnumeratedLiteral common;
811 MinimalMemberDetail detail;
818 struct CommonEnumeratedHeader {
823 struct CompleteEnumeratedHeader {
824 CommonEnumeratedHeader common;
825 CompleteTypeDetail detail;
829 struct MinimalEnumeratedHeader {
830 CommonEnumeratedHeader common;
835 struct CompleteEnumeratedType {
837 CompleteEnumeratedHeader header;
843 struct MinimalEnumeratedType {
845 MinimalEnumeratedHeader header;
852 struct CommonBitflag {
853 unsigned short position;
858 struct CompleteBitflag {
859 CommonBitflag common;
860 CompleteMemberDetail detail;
867 struct MinimalBitflag {
868 CommonBitflag common;
869 MinimalMemberDetail detail;
876 struct CommonBitmaskHeader {
885 struct CompleteBitmaskType {
892 struct MinimalBitmaskType {
893 BitmaskTypeFlag bitmask_flags;
894 MinimalBitmaskHeader header;
895 MinimalBitflagSeq flag_seq;
900 struct CommonBitfield {
901 unsigned short position;
902 BitsetMemberFlag flags;
904 TypeKind holder_type;
908 struct CompleteBitfield {
909 CommonBitfield common;
910 CompleteMemberDetail detail;
917 struct MinimalBitfield {
918 CommonBitfield common;
926 struct CompleteBitsetHeader {
927 CompleteTypeDetail detail;
931 struct MinimalBitsetHeader {
936 struct CompleteBitsetType {
937 BitsetTypeFlag bitset_flags;
938 CompleteBitsetHeader header;
939 CompleteBitfieldSeq field_seq;
943 struct MinimalBitsetType {
945 MinimalBitsetHeader header;
954 struct CompleteExtendedType {
959 union CompleteTypeObject switch (octet) {
961 CompleteAliasType alias_type;
963 CompleteAnnotationType annotation_type;
965 CompleteStructType struct_type;
967 CompleteUnionType union_type;
969 CompleteBitsetType bitset_type;
971 CompleteSequenceType sequence_type;
973 CompleteArrayType array_type;
975 CompleteMapType map_type;
977 CompleteEnumeratedType enumerated_type;
979 CompleteBitmaskType bitmask_type;
983 CompleteExtendedType extended_type;
987 struct MinimalExtendedType {
993 union MinimalTypeObject switch (octet) {
995 MinimalAliasType alias_type;
997 MinimalAnnotationType annotation_type;
999 MinimalStructType struct_type;
1001 MinimalUnionType union_type;
1003 MinimalBitsetType bitset_type;
1005 MinimalSequenceType sequence_type;
1007 MinimalArrayType array_type;
1009 MinimalMapType map_type;
1011 MinimalEnumeratedType enumerated_type;
1013 MinimalBitmaskType bitmask_type;
1017 MinimalExtendedType extended_type;
1021 union TypeObject switch (octet) {
1023 CompleteTypeObject complete;
1025 MinimalTypeObject minimal;
1036 struct TypeIdentifierTypeObjectPair {
1037 TypeIdentifier type_identifier;
1038 TypeObject type_object;
1044 struct TypeIdentifierPair {
1045 TypeIdentifier type_identifier1;
1046 TypeIdentifier type_identifier2;
1051 struct TypeIdentifierWithSize {
1052 DDS::Xtypes::TypeIdentifier type_id;
1053 unsigned long typeobject_serialized_size;
1058 struct TypeIdentifierWithDependencies {
1059 TypeIdentifierWithSize typeid_with_size;
1061 long dependent_typeid_count;
1062 sequence<TypeIdentifierWithSize> dependent_typeids;
1070 struct TypeInformation {
1071 @id(0x1001) TypeIdentifierWithDependencies minimal;
1072 @id(0x1002) TypeIdentifierWithDependencies complete;
const octet TK_FLOAT32
Definition: dds-xtypes_typeobject.idl:25
MemberFlag BitsetMemberFlag
Definition: dds-xtypes_typeobject.idl:139
sequence< MinimalAnnotationParameter > MinimalAnnotationParameterSeq
Definition: dds-xtypes_typeobject.idl:614
TypeFlag BitsetTypeFlag
Definition: dds-xtypes_typeobject.idl:163
const octet TI_STRONGLY_CONNECTED_COMPONENT
Definition: dds-xtypes_typeobject.idl:70
const octet TK_BYTE
Definition: dds-xtypes_typeobject.idl:18
TypeFlag StructTypeFlag
Definition: dds-xtypes_typeobject.idl:156
const octet TK_UINT64
Definition: dds-xtypes_typeobject.idl:24
octet PrimitiveTypeId
Definition: dds-xtypes_typeobject.idl:85
const long TYPE_NAME_MAX_LENGTH
Definition: dds-xtypes_typeobject.idl:81
sequence< long > UnionCaseLabelSeq
Definition: dds-xtypes_typeobject.idl:512
const octet TK_BITSET
Definition: dds-xtypes_typeobject.idl:47
sequence< MinimalBitflag > MinimalBitflagSeq
Definition: dds-xtypes_typeobject.idl:873
string< MEMBER_NAME_MAX_LENGTH > MemberName
Definition: dds-xtypes_typeobject.idl:77
TypeObjectSeq StronglyConnectedComponent
Definition: dds-xtypes_typeobject.idl:1033
octet EquivalenceKind
Definition: dds-xtypes_typeobject.idl:8
sequence< TypeIdentifierPair > TypeIdentifierPairSeq
Definition: dds-xtypes_typeobject.idl:1048
const octet TK_UNION
Definition: dds-xtypes_typeobject.idl:46
sequence< MinimalEnumeratedLiteral > MinimalEnumeratedLiteralSeq
Definition: dds-xtypes_typeobject.idl:815
TypeFlag AliasTypeFlag
Definition: dds-xtypes_typeobject.idl:160
unsigned short BitBound
Definition: dds-xtypes_typeobject.idl:788
MinimalEnumeratedHeader MinimalBitmaskHeader
Definition: dds-xtypes_typeobject.idl:882
const octet TK_FLOAT64
Definition: dds-xtypes_typeobject.idl:26
MemberFlag BitflagFlag
Definition: dds-xtypes_typeobject.idl:138
sequence< TypeIdentifier > TypeIdentifierSeq
Definition: dds-xtypes_typeobject.idl:331
MemberFlag StructMemberFlag
Definition: dds-xtypes_typeobject.idl:132
const octet TK_STRING16
Definition: dds-xtypes_typeobject.idl:33
sequence< AppliedAnnotation > AppliedAnnotationSeq
Definition: dds-xtypes_typeobject.idl:406
octet SBound
Definition: dds-xtypes_typeobject.idl:103
sequence< CompleteAnnotationParameter > CompleteAnnotationParameterSeq
Definition: dds-xtypes_typeobject.idl:604
const unsigned short MemberFlagMinimalMask
Definition: dds-xtypes_typeobject.idl:143
TypeFlag CollectionTypeFlag
Definition: dds-xtypes_typeobject.idl:158
sequence< MinimalUnionMember > MinimalUnionMemberSeq
Definition: dds-xtypes_typeobject.idl:540
octet TypeIdentiferKind
Definition: dds-xtypes_typeobject.idl:57
sequence< TypeInformation > TypeInformationSeq
Definition: dds-xtypes_typeobject.idl:1074
const octet TK_INT32
Definition: dds-xtypes_typeobject.idl:20
const octet TI_PLAIN_SEQUENCE_SMALL
Definition: dds-xtypes_typeobject.idl:63
const octet TK_ANNOTATION
Definition: dds-xtypes_typeobject.idl:44
const long MEMBER_NAME_MAX_LENGTH
Definition: dds-xtypes_typeobject.idl:77
MemberFlag EnumeratedLiteralFlag
Definition: dds-xtypes_typeobject.idl:135
unsigned long MemberId
Definition: dds-xtypes_typeobject.idl:337
const octet TK_MAP
Definition: dds-xtypes_typeobject.idl:52
const octet EK_COMPLETE
Definition: dds-xtypes_typeobject.idl:10
string< TYPE_NAME_MAX_LENGTH > QualifiedTypeName
Definition: dds-xtypes_typeobject.idl:82
const unsigned short TypeFlagMinimalMask
Definition: dds-xtypes_typeobject.idl:166
sequence< TypeIdentifierWithSize > TypeIdentfierWithSizeSeq
Definition: dds-xtypes_typeobject.idl:1055
const octet TI_STRING8_SMALL
Definition: dds-xtypes_typeobject.idl:58
const octet TK_UINT16
Definition: dds-xtypes_typeobject.idl:22
CompleteEnumeratedHeader CompleteBitmaskHeader
Definition: dds-xtypes_typeobject.idl:880
sequence< TypeIdentifierWithDependencies > TypeIdentifierWithDependenciesSeq
Definition: dds-xtypes_typeobject.idl:1064
sequence< SBound > SBoundSeq
Definition: dds-xtypes_typeobject.idl:104
octet NameHash[4]
Definition: dds-xtypes_typeobject.idl:95
octet EquivalenceHash[14]
Definition: dds-xtypes_typeobject.idl:89
const octet TI_STRING16_LARGE
Definition: dds-xtypes_typeobject.idl:61
const octet TK_CHAR8
Definition: dds-xtypes_typeobject.idl:28
TypeFlag AnnotationTypeFlag
Definition: dds-xtypes_typeobject.idl:159
sequence< CompleteUnionMember > CompleteUnionMemberSeq
Definition: dds-xtypes_typeobject.idl:530
TypeFlag UnionTypeFlag
Definition: dds-xtypes_typeobject.idl:157
const octet EK_BOTH
Definition: dds-xtypes_typeobject.idl:11
TypeFlag EnumTypeFlag
Definition: dds-xtypes_typeobject.idl:161
const octet TK_CHAR16
Definition: dds-xtypes_typeobject.idl:29
const octet TI_STRING16_SMALL
Definition: dds-xtypes_typeobject.idl:60
const octet EK_MINIMAL
Definition: dds-xtypes_typeobject.idl:9
sequence< LBound > LBoundSeq
Definition: dds-xtypes_typeobject.idl:99
sequence< MinimalStructMember > MinimalStructMemberSeq
Definition: dds-xtypes_typeobject.idl:463
const octet TK_ALIAS
Definition: dds-xtypes_typeobject.idl:37
const octet TK_INT16
Definition: dds-xtypes_typeobject.idl:19
MemberFlag UnionMemberFlag
Definition: dds-xtypes_typeobject.idl:133
const octet TK_BOOLEAN
Definition: dds-xtypes_typeobject.idl:17
const octet TK_FLOAT128
Definition: dds-xtypes_typeobject.idl:27
const octet TI_PLAIN_ARRAY_LARGE
Definition: dds-xtypes_typeobject.idl:66
sequence< AppliedAnnotationParameter > AppliedAnnotationParameterSeq
Definition: dds-xtypes_typeobject.idl:397
const octet TI_PLAIN_ARRAY_SMALL
Definition: dds-xtypes_typeobject.idl:65
sequence< CompleteBitfield > CompleteBitfieldSeq
Definition: dds-xtypes_typeobject.idl:914
const octet TI_PLAIN_MAP_LARGE
Definition: dds-xtypes_typeobject.idl:68
const octet TK_BITMASK
Definition: dds-xtypes_typeobject.idl:41
const LBound INVALID_LBOUND
Definition: dds-xtypes_typeobject.idl:100
const SBound INVALID_SBOUND
Definition: dds-xtypes_typeobject.idl:105
TypeFlag BitmaskTypeFlag
Definition: dds-xtypes_typeobject.idl:162
const unsigned long ANNOTATION_STR_VALUE_MAX_LEN
Definition: dds-xtypes_typeobject.idl:338
const octet TI_PLAIN_MAP_SMALL
Definition: dds-xtypes_typeobject.idl:67
const octet TK_ENUM
Definition: dds-xtypes_typeobject.idl:40
const unsigned long ANNOTATION_OCTETSEC_VALUE_MAX_LEN
Definition: dds-xtypes_typeobject.idl:339
const octet TI_PLAIN_SEQUENCE_LARGE
Definition: dds-xtypes_typeobject.idl:64
sequence< CompleteStructMember > CompleteStructMemberSeq
Definition: dds-xtypes_typeobject.idl:453
sequence< MinimalBitfield > MinimalBitfieldSeq
Definition: dds-xtypes_typeobject.idl:923
const octet TK_STRUCTURE
Definition: dds-xtypes_typeobject.idl:45
const octet TK_ARRAY
Definition: dds-xtypes_typeobject.idl:51
const octet TK_SEQUENCE
Definition: dds-xtypes_typeobject.idl:50
MemberFlag AliasMemberFlag
Definition: dds-xtypes_typeobject.idl:137
MemberFlag AnnotationParameterFlag
Definition: dds-xtypes_typeobject.idl:136
const octet TI_STRING8_LARGE
Definition: dds-xtypes_typeobject.idl:59
MemberFlag UnionDiscriminatorFlag
Definition: dds-xtypes_typeobject.idl:134
const octet TK_INT64
Definition: dds-xtypes_typeobject.idl:21
const octet TK_NONE
Definition: dds-xtypes_typeobject.idl:16
sequence< CompleteEnumeratedLiteral > CompleteEnumeratedLiteralSeq
Definition: dds-xtypes_typeobject.idl:805
sequence< TypeIdentifierTypeObjectPair > TypeIdentifierTypeObjectPairSeq
Definition: dds-xtypes_typeobject.idl:1041
const octet TK_STRING8
Definition: dds-xtypes_typeobject.idl:32
const octet TK_UINT32
Definition: dds-xtypes_typeobject.idl:23
octet TypeKind
Definition: dds-xtypes_typeobject.idl:14
sequence< CompleteBitflag > CompleteBitflagSeq
Definition: dds-xtypes_typeobject.idl:864
MemberFlag CollectionElementFlag
Definition: dds-xtypes_typeobject.idl:131
unsigned long LBound
Definition: dds-xtypes_typeobject.idl:98
sequence< TypeObject > TypeObjectSeq
Definition: dds-xtypes_typeobject.idl:1027
Definition: dds-builtin_types.idl:1
bit_bound(16) enum TypeConsistencyKind
Definition: dds-xtypes_discovery.idl:183
std::vector< AppliedAnnotation > AppliedAnnotationSeq
Definition: AnnotationParameterValue.h:1124
Definition: BuiltinAnnotationsTypeObject.h:73
Definition: BuiltinAnnotationsTypeObject.h:156