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;