4module
DDS { module XTypes {
16 const octet TK_NONE = 0x00;
17 const octet TK_BOOLEAN = 0x01;
18 const octet TK_BYTE = 0x02;
19 const octet TK_INT16 = 0x03;
20 const octet TK_INT32 = 0x04;
21 const octet TK_INT64 = 0x05;
22 const octet TK_UINT16 = 0x06;
23 const octet TK_UINT32 = 0x07;
24 const octet TK_UINT64 = 0x08;
25 const octet TK_FLOAT32 = 0x09;
26 const octet TK_FLOAT64 = 0x0A;
27 const octet TK_FLOAT128 = 0x0B;
28 const octet TK_INT8 = 0x0C;
29 const octet TK_UINT8 = 0x0D;
30 const octet TK_CHAR8 = 0x10;
31 const octet TK_CHAR16 = 0x11;
34 const octet TK_STRING8 = 0x20;
35 const octet TK_STRING16 = 0x21;
38 const octet TK_ALIAS = 0x30;
41 const octet TK_ENUM = 0x40;
42 const octet TK_BITMASK = 0x41;
45 const octet TK_ANNOTATION = 0x50;
46 const octet TK_STRUCTURE = 0x51;
47 const octet TK_UNION = 0x52;
48 const octet TK_BITSET = 0x53;
51 const octet TK_SEQUENCE = 0x60;
52 const octet TK_ARRAY = 0x61;
53 const octet TK_MAP = 0x62;
108 union TypeObjectHashId switch (octet) {
120 @position(0) TRY_CONSTRUCT1,
121 @position(1) TRY_CONSTRUCT2,
122 @position(2) IS_EXTERNAL,
124 @position(3) IS_OPTIONAL,
125 @position(4) IS_MUST_UNDERSTAND,
127 @position(6) IS_DEFAULT
148 @position(0) IS_FINAL,
149 @position(1) IS_APPENDABLE,
150 @position(2) IS_MUTABLE,
152 @position(3) IS_NESTED,
153 @position(4) IS_AUTOID_HASH
168 union TypeIdentifier;
172 struct StringSTypeDefn {
177 @extensibility(FINAL) @nested
178 struct StringLTypeDefn {
182 @extensibility(FINAL) @nested
183 struct PlainCollectionHeader {
184 EquivalenceKind equiv_kind;
185 CollectionElementFlag element_flags;
189 struct PlainSequenceSElemDefn {
190 PlainCollectionHeader header;
192 @external TypeIdentifier element_identifier;
196 struct PlainSequenceLElemDefn {
197 PlainCollectionHeader header;
199 @external TypeIdentifier element_identifier;
203 struct PlainArraySElemDefn {
204 PlainCollectionHeader header;
206 @external TypeIdentifier element_identifier;
210 struct PlainArrayLElemDefn {
211 PlainCollectionHeader header;
213 @external TypeIdentifier element_identifier;
217 struct PlainMapSTypeDefn {
218 PlainCollectionHeader header;
220 @external TypeIdentifier element_identifier;
222 @external TypeIdentifier key_identifier;
226 struct PlainMapLTypeDefn {
227 PlainCollectionHeader header;
229 @external TypeIdentifier element_identifier;
231 @external TypeIdentifier key_identifier;
236 struct StronglyConnectedComponentId {
237 TypeObjectHashId sc_component_id;
244 struct ExtendedTypeDefn {
277 union TypeIdentifier switch (@default(TK_NONE) octet) {
301 StringSTypeDefn string_sdefn;
305 StringLTypeDefn string_ldefn;
309 PlainSequenceSElemDefn seq_sdefn;
311 PlainSequenceLElemDefn seq_ldefn;
314 PlainArraySElemDefn array_sdefn;
316 PlainArrayLElemDefn array_ldefn;
319 PlainMapSTypeDefn map_sdefn;
321 PlainMapLTypeDefn map_ldefn;
325 StronglyConnectedComponentId sc_component_id;
335 ExtendedTypeDefn extended_defn;
348 struct ExtendedAnnotationParameterValue {
355 @extensibility(FINAL) @nested
356 union AnnotationParameterValue switch (octet) {
358 boolean boolean_value;
368 unsigned short uint_16_value;
372 unsigned long uint32_value;
374 long long int64_value;
376 unsigned long long uint64_value;
380 double float64_value;
382 long double float128_value;
388 long enumerated_value;
390 string<ANNOTATION_STR_VALUE_MAX_LEN> string8_value;
392 wstring<ANNOTATION_STR_VALUE_MAX_LEN> string16_value;
394 ExtendedAnnotationParameterValue extended_value;
398 @extensibility(APPENDABLE) @nested
399 struct AppliedAnnotationParameter {
400 NameHash paramname_hash;
401 AnnotationParameterValue value;
408 struct AppliedAnnotation {
409 TypeIdentifier annotation_typeid;
417 struct AppliedVerbatimAnnotation {
418 string<32> placement;
425 @extensibility(APPENDABLE) @nested
426 struct AppliedBuiltinMemberAnnotations {
427 @optional string unit;
428 @optional AnnotationParameterValue min;
429 @optional AnnotationParameterValue max;
430 @optional string hash_id;
433 @extensibility(FINAL) @nested
434 struct CommonStructMember {
436 StructMemberFlag member_flags;
437 TypeIdentifier member_type_id;
442 struct CompleteMemberDetail {
444 @optional AppliedBuiltinMemberAnnotations ann_builtin;
450 struct MinimalMemberDetail {
456 struct CompleteStructMember {
457 CommonStructMember common;
458 CompleteMemberDetail detail;
465 struct MinimalStructMember {
466 CommonStructMember common;
467 MinimalMemberDetail detail;
474 struct AppliedBuiltinTypeAnnotations {
475 @optional AppliedVerbatimAnnotation verbatim;
478 @extensibility(FINAL) @nested
479 struct MinimalTypeDetail {
483 @extensibility(FINAL) @nested
484 struct CompleteTypeDetail {
485 @optional AppliedBuiltinTypeAnnotations ann_builtin;
486 @optional AppliedAnnotationSeq ann_custom;
487 QualifiedTypeName type_name;
491 struct CompleteStructHeader {
492 TypeIdentifier base_type;
493 CompleteTypeDetail detail;
497 struct MinimalStructHeader {
498 TypeIdentifier base_type;
499 MinimalTypeDetail detail;
503 struct CompleteStructType {
505 CompleteStructHeader header;
510 struct MinimalStructType {
512 MinimalStructHeader header;
523 struct CommonUnionMember {
526 TypeIdentifier type_id;
531 @extensibility(APPENDABLE) @nested
532 struct CompleteUnionMember {
533 CommonUnionMember common;
534 CompleteMemberDetail detail;
541 struct MinimalUnionMember {
542 CommonUnionMember common;
543 MinimalMemberDetail detail;
549 struct CommonDiscriminatorMember {
551 TypeIdentifier type_id;
555 @extensibility(APPENDABLE) @nested
556 struct CompleteDiscriminatorMember {
557 CommonDiscriminatorMember common;
558 @optional AppliedBuiltinTypeAnnotations ann_builtin;
559 @optional AppliedAnnotationSeq ann_custom;
563 @extensibility(APPENDABLE) @nested
564 struct MinimalDiscriminatorMember {
565 CommonDiscriminatorMember common;
569 struct CompleteUnionHeader {
570 CompleteTypeDetail detail;
574 struct MinimalUnionHeader {
575 MinimalTypeDetail detail;
579 struct CompleteUnionType {
581 CompleteUnionHeader header;
582 CompleteDiscriminatorMember discriminator;
587 struct MinimalUnionType {
589 MinimalUnionHeader header;
590 MinimalDiscriminatorMember discriminator;
596 struct CommonAnnotationParameter {
598 TypeIdentifier member_type_id;
603 struct CompleteAnnotationParameter {
604 CommonAnnotationParameter common;
606 AnnotationParameterValue default_value;
613 struct MinimalAnnotationParameter {
614 CommonAnnotationParameter common;
616 AnnotationParameterValue default_value;
623 struct CompleteAnnotationHeader {
627 @extensibility(APPENDABLE) @nested
628 struct MinimalAnnotationHeader {
632 @extensibility(FINAL) @nested
633 struct CompleteAnnotationType {
634 AnnotationTypeFlag annotation_flag;
635 CompleteAnnotationHeader header;
636 CompleteAnnotationParameterSeq member_seq;
640 struct MinimalAnnotationType {
642 MinimalAnnotationHeader header;
649 struct CommonAliasBody {
651 TypeIdentifier related_type;
655 struct CompleteAliasBody {
656 CommonAliasBody common;
657 @optional AppliedBuiltinMemberAnnotations ann_builtin;
662 struct MinimalAliasBody {
663 CommonAliasBody common;
667 struct CompleteAliasHeader {
668 CompleteTypeDetail detail;
672 struct MinimalAliasHeader {
677 struct CompleteAliasType {
679 CompleteAliasHeader header;
680 CompleteAliasBody body;
684 struct MinimalAliasType {
686 MinimalAliasHeader header;
687 MinimalAliasBody body;
692 struct CompleteElementDetail {
693 @optional AppliedBuiltinMemberAnnotations ann_builtin;
698 struct CommonCollectionElement {
704 struct CompleteCollectionElement {
705 CommonCollectionElement common;
706 CompleteElementDetail detail;
710 struct MinimalCollectionElement {
711 CommonCollectionElement common;
715 struct CommonCollectionHeader {
720 struct CompleteCollectionHeader {
721 CommonCollectionHeader common;
722 @optional CompleteTypeDetail detail;
726 struct MinimalCollectionHeader {
727 CommonCollectionHeader common;
732 struct CompleteSequenceType {
734 CompleteCollectionHeader header;
735 CompleteCollectionElement element;
739 struct MinimalSequenceType {
741 MinimalCollectionHeader header;
742 MinimalCollectionElement element;
747 struct CommonArrayHeader {
752 struct CompleteArrayHeader {
753 CommonArrayHeader common;
754 CompleteTypeDetail detail;
758 struct MinimalArrayHeader {
759 CommonArrayHeader common;
763 struct CompleteArrayType {
765 CompleteArrayHeader header;
766 CompleteCollectionElement element;
770 struct MinimalArrayType {
772 MinimalArrayHeader header;
773 MinimalCollectionElement element;
778 struct CompleteMapType {
780 CompleteCollectionHeader header;
781 CompleteCollectionElement key;
782 CompleteCollectionElement element;
786 struct MinimalMapType {
788 MinimalCollectionHeader header;
789 MinimalCollectionElement key;
790 MinimalCollectionElement element;
798 struct CommonEnumeratedLiteral {
804 @extensibility(APPENDABLE) @nested
805 struct CompleteEnumeratedLiteral {
806 CommonEnumeratedLiteral common;
807 CompleteMemberDetail detail;
814 struct MinimalEnumeratedLiteral {
815 CommonEnumeratedLiteral common;
816 MinimalMemberDetail detail;
822 struct CommonEnumeratedHeader {
826 @extensibility(APPENDABLE) @nested
827 struct CompleteEnumeratedHeader {
828 CommonEnumeratedHeader common;
829 CompleteTypeDetail detail;
832 @extensibility(APPENDABLE) @nested
833 struct MinimalEnumeratedHeader {
834 CommonEnumeratedHeader common;
839 struct CompleteEnumeratedType {
841 CompleteEnumeratedHeader header;
847 struct MinimalEnumeratedType {
849 MinimalEnumeratedHeader header;
856 struct CommonBitflag {
857 unsigned short position;
862 struct CompleteBitflag {
863 CommonBitflag common;
864 CompleteMemberDetail detail;
870 struct MinimalBitflag {
871 CommonBitflag common;
872 MinimalMemberDetail detail;
878 struct CommonBitmaskHeader {
887 struct CompleteBitmaskType {
893 @extensibility(APPENDABLE) @nested
894 struct MinimalBitmaskType {
895 BitmaskTypeFlag bitmask_flags;
896 MinimalBitmaskHeader header;
897 MinimalBitflagSeq flag_seq;
901 @extensibility(FINAL) @nested
902 struct CommonBitfield {
903 unsigned short position;
904 BitsetMemberFlag flags;
906 TypeKind holder_type;
910 struct CompleteBitfield {
911 CommonBitfield common;
912 CompleteMemberDetail detail;
918 struct MinimalBitfield {
919 CommonBitfield common;
926 struct CompleteBitsetHeader {
927 CompleteTypeDetail detail;
930 @extensibility(APPENDABLE) @nested
931 struct MinimalBitsetHeader {
935 @extensibility(APPENDABLE) @nested
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 (@default(
TK_NONE)
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 (@default(
TK_NONE)
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;
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 TypeIdentfierWithSize {
1052 DDS::XTypes::TypeIdentifier type_id;
1053 unsigned long typeobject_serialized_size;
1058 struct TypeIdentifierWithDependencies {
1059 TypeIdentfierWithSize typeid_with_size;
1061 long dependent_typeid_count;
1062 sequence<TypeIdentfierWithSize> dependent_typeids;
1070 struct TypeInformation {
1071 @id(0x1001) TypeIdentifierWithDependencies minimal;
1072 @id(0x1002) TypeIdentifierWithDependencies complete;