Fast DDS  Version 3.0.1
Fast DDS
Loading...
Searching...
No Matches
TypeObjectUtils.hpp
1// Copyright 2023 Proyectos y Sistemas de Mantenimiento SL (eProsima).
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
20#ifndef FASTDDS_DDS_XTYPES_TYPE_REPRESENTATION__TYPEOBJECTUTILS_HPP
21#define FASTDDS_DDS_XTYPES_TYPE_REPRESENTATION__TYPEOBJECTUTILS_HPP
22
23#include <string>
24
25#include <fastcdr/cdr/fixed_size_string.hpp>
26#include <fastcdr/xcdr/optional.hpp>
27
28#include <fastdds/dds/core/ReturnCode.hpp>
29#include <fastdds/dds/xtypes/common.hpp>
30#include <fastdds/dds/xtypes/dynamic_types/Types.hpp>
31#include <fastdds/dds/xtypes/exception/Exception.hpp>
32#include <fastdds/dds/xtypes/type_representation/TypeObject.hpp>
33#include <fastdds/fastdds_dll.hpp>
34
35namespace eprosima {
36namespace fastdds {
37namespace dds {
38
39class DynamicTypeBuilderFactoryImpl;
40
41namespace xtypes {
42
43class TypeObjectRegistry;
44
46
48{
49public:
50
60 FASTDDS_EXPORTED_API static const TypeObjectHashId build_type_object_hash_id(
61 uint8_t discriminator,
62 const EquivalenceHash& hash);
63
72 TryConstructFailAction try_construct_kind,
73 bool external);
74
87 FASTDDS_EXPORTED_API static StructMemberFlag build_struct_member_flag(
88 TryConstructFailAction try_construct_kind,
89 bool optional,
90 bool must_understand,
91 bool key,
92 bool external);
93
102 FASTDDS_EXPORTED_API static UnionMemberFlag build_union_member_flag(
103 TryConstructFailAction try_construct_kind,
104 bool default_member,
105 bool external);
106
115 TryConstructFailAction try_construct_kind,
116 bool key);
117
125 bool default_literal);
126
142 FASTDDS_EXPORTED_API static StructTypeFlag build_struct_type_flag(
143 ExtensibilityKind extensibility_kind,
144 bool nested,
145 bool autoid_hash);
146
155 FASTDDS_EXPORTED_API static UnionTypeFlag build_union_type_flag(
156 ExtensibilityKind extensibility_kind,
157 bool nested,
158 bool autoid_hash);
159
169 //{{{ Indirect Hash TypeIdentifiers
170
179 FASTDDS_EXPORTED_API static const StringSTypeDefn build_string_s_type_defn(
180 SBound bound);
181
190 FASTDDS_EXPORTED_API static const StringLTypeDefn build_string_l_type_defn(
191 LBound bound);
192
203 FASTDDS_EXPORTED_API static const PlainCollectionHeader build_plain_collection_header(
204 EquivalenceKind equiv_kind,
205 CollectionElementFlag element_flags);
206
223 const PlainCollectionHeader& header,
224 SBound s_bound,
225 const eprosima::fastcdr::external<TypeIdentifier>& element_identifier);
226
243 const PlainCollectionHeader& header,
244 LBound l_bound,
245 const eprosima::fastcdr::external<TypeIdentifier>& element_identifier);
246
255 template<typename element>
257 std::vector<element>& array_bound_seq,
258 element dimension_bound)
259 {
260 if (dimension_bound == INVALID_LBOUND)
261 {
262 throw InvalidArgumentError("bound parameter must be greater than 0");
263 }
264 array_bound_seq.push_back(dimension_bound);
265 }
266
282 FASTDDS_EXPORTED_API static const PlainArraySElemDefn build_plain_array_s_elem_defn(
283 const PlainCollectionHeader& header,
284 const SBoundSeq& array_bound_seq,
285 const eprosima::fastcdr::external<TypeIdentifier>& element_identifier);
286
303 FASTDDS_EXPORTED_API static const PlainArrayLElemDefn build_plain_array_l_elem_defn(
304 const PlainCollectionHeader& header,
305 const LBoundSeq& array_bound_seq,
306 const eprosima::fastcdr::external<TypeIdentifier>& element_identifier);
307
329 FASTDDS_EXPORTED_API static const PlainMapSTypeDefn build_plain_map_s_type_defn(
330 const PlainCollectionHeader& header,
331 const SBound bound,
332 const eprosima::fastcdr::external<TypeIdentifier>& element_identifier,
333 const CollectionElementFlag key_flags,
334 const eprosima::fastcdr::external<TypeIdentifier>& key_identifier);
335
357 FASTDDS_EXPORTED_API static const PlainMapLTypeDefn build_plain_map_l_type_defn(
358 const PlainCollectionHeader& header,
359 const LBound bound,
360 const eprosima::fastcdr::external<TypeIdentifier>& element_identifier,
361 const CollectionElementFlag key_flags,
362 const eprosima::fastcdr::external<TypeIdentifier>& key_identifier);
363
373 const TypeObjectHashId& sc_component_id,
374 int32_t scc_length,
375 int32_t scc_index);
376
382 FASTDDS_EXPORTED_API static const ExtendedTypeDefn build_extended_type_defn();
383
384 //}}}
385
386 //{{{ Register Indirect Hash TypeIdentifiers
387
407 const StringSTypeDefn& string,
408 const std::string& type_name,
409 TypeIdentifierPair& type_ids,
410 bool wstring = false);
411
427 const StringLTypeDefn& string,
428 const std::string& type_name,
429 TypeIdentifierPair& type_ids,
430 bool wstring = false);
431
446 const PlainSequenceSElemDefn& plain_seq,
447 const std::string& type_name,
448 TypeIdentifierPair& type_ids);
449
464 const PlainSequenceLElemDefn& plain_seq,
465 const std::string& type_name,
466 TypeIdentifierPair& type_ids);
467
482 const PlainArraySElemDefn& plain_array,
483 const std::string& type_name,
484 TypeIdentifierPair& type_ids);
485
500 const PlainArrayLElemDefn& plain_array,
501 const std::string& type_name,
502 TypeIdentifierPair& type_ids);
503
518 const PlainMapSTypeDefn& plain_map,
519 const std::string& type_name,
520 TypeIdentifierPair& type_ids);
521
536 const PlainMapLTypeDefn& plain_map,
537 const std::string& type_name,
538 TypeIdentifierPair& type_ids);
539
552 const std::string& type_name);
553 //}}}
554
555 //{{{ Annotation usage
562
570 bool boolean_value);
571
579 uint8_t byte_value);
580
588 int8_t int8_value);
589
597 uint8_t uint8_value);
598
606 int16_t int16_value);
607
615 uint16_t uint16_value);
616
624 int32_t int32_value);
625
633 uint32_t uint32_value);
634
642 int64_t int64_value);
643
651 uint64_t uint64_value);
652
660 float float32_value);
661
669 double float64_value);
670
678 long double float128_value);
679
687 char char_value);
688
696 wchar_t wchar_value);
697
705 int32_t enumerated_value);
706
714 const eprosima::fastcdr::fixed_string<128>& string8_value);
715
723 const std::wstring& string16_value);
724
733 const NameHash& paramname_hash,
734 const AnnotationParameterValue& value);
735
744 FASTDDS_EXPORTED_API static void add_applied_annotation_parameter(
746 const AppliedAnnotationParameter& param);
747
761 FASTDDS_EXPORTED_API static const AppliedAnnotation build_applied_annotation(
762 const TypeIdentifier& annotation_typeid,
763 const eprosima::fastcdr::optional<AppliedAnnotationParameterSeq>& param_seq);
764
774 FASTDDS_EXPORTED_API static void add_applied_annotation(
775 AppliedAnnotationSeq& ann_custom_seq,
776 const AppliedAnnotation& ann_custom);
777
787 PlacementKind placement,
788 const eprosima::fastcdr::fixed_string<32>& language,
789 const std::string& text);
790 //}}}
791
792 //{{{ Aggregate types
803 const eprosima::fastcdr::optional<std::string>& unit,
804 const eprosima::fastcdr::optional<AnnotationParameterValue>& min,
805 const eprosima::fastcdr::optional<AnnotationParameterValue>& max,
806 const eprosima::fastcdr::optional<std::string>& hash_id);
807
819 FASTDDS_EXPORTED_API static const CommonStructMember build_common_struct_member(
820 MemberId member_id,
821 StructMemberFlag member_flags,
822 const TypeIdentifier& member_type_id);
823
835 FASTDDS_EXPORTED_API static const CompleteMemberDetail build_complete_member_detail(
836 const MemberName& name,
837 const eprosima::fastcdr::optional<AppliedBuiltinMemberAnnotations>& ann_builtin,
838 const eprosima::fastcdr::optional<AppliedAnnotationSeq>& ann_custom);
839
854 FASTDDS_EXPORTED_API static const CompleteStructMember build_complete_struct_member(
855 const CommonStructMember& common,
856 const CompleteMemberDetail& detail);
857
868 FASTDDS_EXPORTED_API static void add_complete_struct_member(
869 CompleteStructMemberSeq& member_seq,
870 const CompleteStructMember& member);
871
885 const eprosima::fastcdr::optional<AppliedVerbatimAnnotation>& verbatim);
886
901 FASTDDS_EXPORTED_API static const CompleteTypeDetail build_complete_type_detail(
902 const eprosima::fastcdr::optional<AppliedBuiltinTypeAnnotations>& ann_builtin,
903 const eprosima::fastcdr::optional<AppliedAnnotationSeq>& ann_custom,
904 const QualifiedTypeName& type_name);
905
917 FASTDDS_EXPORTED_API static const CompleteStructHeader build_complete_struct_header(
918 const TypeIdentifier& base_type,
919 const CompleteTypeDetail& detail);
920
938 FASTDDS_EXPORTED_API static const CompleteStructType build_complete_struct_type(
939 StructTypeFlag struct_flags,
940 const CompleteStructHeader& header,
941 const CompleteStructMemberSeq& member_seq);
942
946 //}}}
947
948 //{{{ Union
949
956 FASTDDS_EXPORTED_API static void add_union_case_label(
957 UnionCaseLabelSeq& label_seq,
958 int32_t label);
959
972 FASTDDS_EXPORTED_API static const CommonUnionMember build_common_union_member(
973 MemberId member_id,
974 UnionMemberFlag member_flags,
975 const TypeIdentifier& type_id,
976 const UnionCaseLabelSeq& label_seq);
977
988 FASTDDS_EXPORTED_API static const CompleteUnionMember build_complete_union_member(
989 const CommonUnionMember& common,
990 const CompleteMemberDetail& detail);
991
1006 FASTDDS_EXPORTED_API static void add_complete_union_member(
1007 CompleteUnionMemberSeq& complete_union_member_seq,
1008 const CompleteUnionMember& member);
1009
1029 UnionDiscriminatorFlag member_flags,
1030 const TypeIdentifier& type_id);
1031
1046 const CommonDiscriminatorMember& common,
1047 const eprosima::fastcdr::optional<AppliedBuiltinTypeAnnotations>& ann_builtin,
1048 const eprosima::fastcdr::optional<AppliedAnnotationSeq>& ann_custom);
1049
1062 FASTDDS_EXPORTED_API static const CompleteUnionHeader build_complete_union_header(
1063 const CompleteTypeDetail& detail);
1064
1084 FASTDDS_EXPORTED_API static const CompleteUnionType build_complete_union_type(
1085 UnionTypeFlag union_flags,
1086 const CompleteUnionHeader& header,
1087 const CompleteDiscriminatorMember& discriminator,
1088 const CompleteUnionMemberSeq& member_seq);
1089
1093 //}}}
1094
1095 //{{{ Annotation
1096
1108 AnnotationParameterFlag member_flags,
1109 const TypeIdentifier& member_type_id);
1110
1124 const CommonAnnotationParameter& common,
1125 const MemberName& name,
1126 const AnnotationParameterValue& default_value);
1127
1138 FASTDDS_EXPORTED_API static void add_complete_annotation_parameter(
1140 const CompleteAnnotationParameter& param);
1141
1154 const QualifiedTypeName& annotation_name);
1155
1173 AnnotationTypeFlag annotation_flag,
1174 const CompleteAnnotationHeader& header,
1175 const CompleteAnnotationParameterSeq& member_seq);
1176
1180 //}}}
1181
1182 //{{{ Alias
1183
1194 FASTDDS_EXPORTED_API static const CommonAliasBody build_common_alias_body(
1195 AliasMemberFlag related_flags,
1196 const TypeIdentifier& related_type);
1197
1210 FASTDDS_EXPORTED_API static const CompleteAliasBody build_complete_alias_body(
1211 const CommonAliasBody& common,
1212 const eprosima::fastcdr::optional<AppliedBuiltinMemberAnnotations>& ann_builtin,
1213 const eprosima::fastcdr::optional<AppliedAnnotationSeq>& ann_custom);
1214
1227 FASTDDS_EXPORTED_API static const CompleteAliasHeader build_complete_alias_header(
1228 const CompleteTypeDetail& detail);
1229
1245 FASTDDS_EXPORTED_API static const CompleteAliasType build_complete_alias_type(
1246 AliasTypeFlag alias_flags,
1247 const CompleteAliasHeader& header,
1248 const CompleteAliasBody& body);
1249
1253 //}}}
1254
1255 //{{{ Collections
1256
1267 FASTDDS_EXPORTED_API static const CompleteElementDetail build_complete_element_detail(
1268 const eprosima::fastcdr::optional<AppliedBuiltinMemberAnnotations>& ann_builtin,
1269 const eprosima::fastcdr::optional<AppliedAnnotationSeq>& ann_custom);
1270
1282 CollectionElementFlag element_flags,
1283 const TypeIdentifier& type);
1284
1296 const CommonCollectionElement& common,
1297 const CompleteElementDetail& detail);
1298
1312 LBound bound);
1313
1325 const CommonCollectionHeader& common,
1326 const eprosima::fastcdr::optional<CompleteTypeDetail>& detail);
1327
1331 //}}}
1332
1333 //{{{ Sequence
1334
1347 FASTDDS_EXPORTED_API static const CompleteSequenceType build_complete_sequence_type(
1348 CollectionTypeFlag collection_flag,
1349 const CompleteCollectionHeader& header,
1350 const CompleteCollectionElement& element);
1351
1355 //}}}
1356
1357 //{{{ Array
1358
1366 FASTDDS_EXPORTED_API static const CommonArrayHeader build_common_array_header(
1367 const LBoundSeq& bound_seq);
1368
1379 FASTDDS_EXPORTED_API static const CompleteArrayHeader build_complete_array_header(
1380 const CommonArrayHeader& common,
1381 const CompleteTypeDetail& detail);
1382
1399 FASTDDS_EXPORTED_API static const CompleteArrayType build_complete_array_type(
1400 CollectionTypeFlag collection_flag,
1401 const CompleteArrayHeader& header,
1402 const CompleteCollectionElement& element);
1403
1407 //}}}
1408
1409 //{{{ Map
1410
1426 FASTDDS_EXPORTED_API static const CompleteMapType build_complete_map_type(
1427 CollectionTypeFlag collection_flag,
1428 const CompleteCollectionHeader& header,
1429 const CompleteCollectionElement& key,
1430 const CompleteCollectionElement& element);
1431
1435 //}}}
1436
1437 //{{{ Enumeration
1438
1449 int32_t value,
1450 EnumeratedLiteralFlag flags);
1451
1463 const CommonEnumeratedLiteral& common,
1464 const CompleteMemberDetail& detail);
1465
1476 FASTDDS_EXPORTED_API static void add_complete_enumerated_literal(
1478 const CompleteEnumeratedLiteral& enum_literal);
1479
1496 BitBound bit_bound,
1497 bool bitmask = false);
1498
1512 const CommonEnumeratedHeader& common,
1513 const CompleteTypeDetail& detail,
1514 bool bitmask = false);
1515
1533 EnumTypeFlag enum_flags,
1534 const CompleteEnumeratedHeader& header,
1535 const CompleteEnumeratedLiteralSeq& literal_seq);
1536
1540 //}}}
1541
1542 //{{{ Bitmask
1543
1556 FASTDDS_EXPORTED_API static const CommonBitflag build_common_bitflag(
1557 uint16_t position,
1558 BitflagFlag flags);
1559
1571 FASTDDS_EXPORTED_API static const CompleteBitflag build_complete_bitflag(
1572 const CommonBitflag& common,
1573 const CompleteMemberDetail& detail);
1574
1585 FASTDDS_EXPORTED_API static void add_complete_bitflag(
1586 CompleteBitflagSeq& sequence,
1587 const CompleteBitflag& bitflag);
1588
1611 FASTDDS_EXPORTED_API static const CompleteBitmaskType build_complete_bitmask_type(
1612 BitmaskTypeFlag bitmask_flags,
1613 const CompleteBitmaskHeader& header,
1614 const CompleteBitflagSeq& flag_seq);
1615 //}}}
1616
1617 //{{{ Bitset
1618
1636 FASTDDS_EXPORTED_API static const CommonBitfield build_common_bitfield(
1637 uint16_t position,
1638 BitsetMemberFlag flags,
1639 uint8_t bitcount,
1640 TypeKind holder_type);
1641
1653 FASTDDS_EXPORTED_API static const CompleteBitfield build_complete_bitfield(
1654 const CommonBitfield& common,
1655 const CompleteMemberDetail& detail);
1656
1666 FASTDDS_EXPORTED_API static void add_complete_bitfield(
1667 CompleteBitfieldSeq& sequence,
1668 const CompleteBitfield& bitfield);
1669
1682 FASTDDS_EXPORTED_API static const CompleteBitsetHeader build_complete_bitset_header(
1683 const CompleteTypeDetail& detail);
1684
1701 FASTDDS_EXPORTED_API static const CompleteBitsetType build_complete_bitset_type(
1702 BitsetTypeFlag bitset_flags,
1703 const CompleteBitsetHeader& header,
1704 const CompleteBitfieldSeq& field_seq);
1705
1709 //}}}
1710
1711 //{{{ Type Object
1712
1718 FASTDDS_EXPORTED_API static const CompleteExtendedType build_complete_extended_type();
1719
1736 const CompleteAliasType& alias_type,
1737 const std::string& type_name,
1738 TypeIdentifierPair& type_ids);
1739
1756 const CompleteAnnotationType& annotation_type,
1757 const std::string& type_name,
1758 TypeIdentifierPair& type_ids);
1759
1776 const CompleteStructType& struct_type,
1777 const std::string& type_name,
1778 TypeIdentifierPair& type_ids);
1779
1796 const CompleteUnionType& union_type,
1797 const std::string& type_name,
1798 TypeIdentifierPair& type_ids);
1799
1816 const CompleteBitsetType& bitset_type,
1817 const std::string& type_name,
1818 TypeIdentifierPair& type_ids);
1819
1834 const CompleteSequenceType& sequence_type,
1835 const std::string& type_name);
1836
1851 const CompleteArrayType& array_type,
1852 const std::string& type_name);
1853
1868 const CompleteMapType& map_type,
1869 const std::string& type_name);
1870
1887 const CompleteEnumeratedType& enumerated_type,
1888 const std::string& type_name,
1889 TypeIdentifierPair& type_ids);
1890
1907 const CompleteBitmaskType& bitmask_type,
1908 const std::string& type_name,
1909 TypeIdentifierPair& type_ids);
1910 //}}}
1911
1912 //{{{ Auxiliary public methods
1913
1920 FASTDDS_EXPORTED_API static const NameHash name_hash(
1921 const std::string& name);
1922
1930 FASTDDS_EXPORTED_API static void type_object_consistency(
1931 const TypeObject& type_object);
1932
1940 FASTDDS_EXPORTED_API static const TypeIdentifier& retrieve_minimal_type_identifier(
1941 const TypeIdentifierPair& type_ids,
1942 bool& ec);
1943
1951 FASTDDS_EXPORTED_API static const TypeIdentifier& retrieve_complete_type_identifier(
1952 const TypeIdentifierPair& type_ids,
1953 bool& ec);
1954 //}}}
1955
1956private:
1957
1960
1961 // Class with only static methods
1962 TypeObjectUtils() = delete;
1963 ~TypeObjectUtils() = delete;
1964
1965protected:
1966
1967 //{{{ Auxiliary methods
1968
1976 MemberFlag& member_flag,
1977 TryConstructFailAction try_construct_kind);
1978
1987 static void set_type_flag(
1988 TypeFlag& type_flag,
1989 ExtensibilityKind extensibility_kind,
1990 bool nested,
1991 bool autoid_hash);
1992
2000 TypeFlag& type_flag,
2001 ExtensibilityKind extensibility_kind);
2002
2017 const TypeIdentifier& type_identifier);
2018
2029 const TypeIdentifier& type_identifier);
2030
2044 const TypeIdentifier& type_identifier);
2045 //}}}
2046
2047 //{{{ Consistency methods (Debug)
2048
2062 LBound bound);
2063
2072 template<typename T>
2074 const T& array)
2075 {
2076 if (array.empty())
2077 {
2078 throw InvalidArgumentError("array_bound_seq parameter must not be empty");
2079 }
2080 for (auto bound : array)
2081 {
2082 if (INVALID_LBOUND == bound)
2083 {
2084 throw InvalidArgumentError("bound parameter must be greater than 0");
2085 }
2086 }
2087 }
2088
2097 const LBoundSeq& bound_seq);
2098
2107 CollectionElementFlag collection_element_flag);
2108
2119 StructMemberFlag member_flags);
2120
2129 UnionMemberFlag union_member_flag);
2130
2139 UnionDiscriminatorFlag union_discriminator_flag);
2140
2149 EnumeratedLiteralFlag enumerated_literal_flag);
2150
2159 TypeFlag type_flag);
2160
2169 template<typename T>
2171 T flags)
2172 {
2173 if (flags != 0)
2174 {
2175 throw InvalidArgumentError("Flags should be empty. No flags apply");
2176 }
2177 }
2178
2187 EquivalenceKind equiv_kind);
2188
2199 const PlainCollectionHeader& header);
2200
2212 const PlainCollectionHeader& header,
2213 const TypeIdentifier& element_identifier);
2214
2225 const TypeIdentifier& identifier);
2226
2239 const PlainCollectionHeader& header,
2240 const TypeIdentifier& type_identifier);
2241
2253 const TypeIdentifier& key_identifier);
2254
2263 const StringLTypeDefn& string);
2264
2273 const PlainSequenceSElemDefn& plain_seq);
2274
2283 const PlainSequenceLElemDefn& plain_seq);
2284
2293 const PlainArraySElemDefn& plain_array);
2294
2303 const PlainArrayLElemDefn& plain_array);
2304
2313 const PlainMapSTypeDefn& plain_map);
2314
2323 const PlainMapLTypeDefn& plain_map);
2324
2333 const TypeIdentifier& type_id);
2334
2343 const TypeIdentifier& type_identifier);
2344
2353 const AppliedAnnotationParameterSeq& applied_annotation_parameter_seq);
2354
2363 const TypeIdentifier& annotation_type_id);
2364
2373 const AppliedAnnotation& applied_annotation);
2374
2383 const AppliedAnnotationSeq& applied_annotation_seq);
2384
2393 const AppliedVerbatimAnnotation& applied_verbatim_annotation);
2394
2403 const CommonStructMember& common_struct_member);
2404
2413 const CompleteMemberDetail& complete_member_detail);
2414
2424 const CommonStructMember& common_struct_member,
2425 const CompleteMemberDetail& complete_member_detail);
2426
2435 MemberId member_id,
2436 const std::string& string_value);
2437
2446 const CompleteStructMember& complete_struct_member);
2447
2456 const CompleteStructMemberSeq& complete_struct_member_seq);
2457
2466 const AppliedBuiltinTypeAnnotations& applied_builtin_type_annotations);
2467
2476 const CompleteTypeDetail& complete_type_detail);
2477
2486 const TypeIdentifier& base_type);
2487
2496 const CompleteStructHeader& complete_struct_header);
2497
2506 const CompleteStructType& complete_struct_type);
2507
2516 const MinimalStructType& minimal_struct_type);
2517
2526 const UnionCaseLabelSeq& union_case_label_seq);
2527
2536 const CommonUnionMember& common_union_member);
2537
2547 const CommonUnionMember& common_union_member,
2548 const CompleteMemberDetail& complete_member_detail);
2549
2558 const CompleteUnionMember& complete_union_member);
2559
2568 const CompleteUnionMemberSeq& complete_union_member_seq);
2569
2578 const TypeIdentifier& type_id);
2579
2588 const CommonDiscriminatorMember& common_discriminator_member);
2589
2598 const CompleteDiscriminatorMember& complete_discriminator_member);
2599
2608 const CompleteUnionHeader& complete_union_header);
2609
2618 const CompleteUnionType& complete_union_type);
2619
2628 const MinimalUnionType& minimal_union_type);
2629
2639 const TypeIdentifier& type_id,
2640 const AnnotationParameterValue& value);
2641
2650 const CommonAnnotationParameter& common_annotation_parameter);
2651
2660 const CompleteAnnotationParameter& complete_annotation_parameter);
2661
2670 const CompleteAnnotationParameterSeq& complete_annotation_parameter_seq);
2671
2680 const CompleteAnnotationHeader& complete_annotation_header);
2681
2690 const CompleteAnnotationType& complete_annotation_type);
2691
2700 const MinimalAnnotationType& minimal_annotation_type);
2701
2710 const CommonAliasBody& common_alias_body);
2711
2720 const eprosima::fastcdr::optional<AppliedBuiltinMemberAnnotations>& ann_builtin);
2721
2730 const CompleteAliasBody& complete_alias_body);
2731
2740 const CompleteAliasHeader& complete_alias_header);
2741
2750 const CompleteAliasType& complete_alias_type);
2751
2760 const MinimalAliasType& minimal_alias_type);
2761
2770 const CompleteElementDetail& complete_element_detail);
2771
2780 const CommonCollectionElement& common_collection_element);
2781
2790 const CompleteCollectionElement& complete_collection_element);
2791
2800 const CompleteCollectionHeader& complete_collection_header);
2801
2810 const CompleteSequenceType& complete_sequence_type);
2811
2820 const MinimalSequenceType& minimal_sequence_type);
2821
2830 const CommonArrayHeader& common_array_header);
2831
2840 const CompleteArrayHeader& complete_array_header);
2841
2850 const CompleteArrayType& complete_array_type);
2851
2860 const MinimalArrayType& minimal_array_type);
2861
2870 const CompleteMapType& complete_map_type);
2871
2880 const MinimalMapType& minimal_map_type);
2881
2890 const CommonEnumeratedLiteral& common_enumerated_literal);
2891
2900 const CompleteEnumeratedLiteral& complete_enumerated_literal);
2901
2910 const CompleteEnumeratedLiteralSeq& complete_enumerated_literal_seq);
2911
2920 BitBound bit_bound);
2921
2930 BitBound bit_bound);
2931
2941 const CommonEnumeratedHeader& common_enumerated_header,
2942 bool bitmask = false);
2943
2953 const CompleteEnumeratedHeader& complete_enumerated_header,
2954 bool bitmask = false);
2955
2964 const CompleteEnumeratedType& complete_enumerated_type);
2965
2974 const MinimalEnumeratedType& minimal_enumerated_type);
2975
2984 uint16_t position);
2985
2994 const CommonBitflag& common_bitflag);
2995
3004 const CompleteBitflag& complete_bitflag);
3005
3014 const CompleteBitflagSeq& complete_bitflag_seq);
3015
3024 const CompleteBitmaskType& complete_bitmask_type);
3025
3034 const MinimalBitmaskType& minimal_bitmask_type);
3035
3044 TypeKind holder_type,
3045 uint8_t bitcount);
3046
3055 const CommonBitfield& common_bitfield);
3056
3065 const CompleteBitfield& complete_bitfield);
3066
3075 const CompleteBitfieldSeq& complete_bitfield_seq);
3076
3085 const CompleteBitsetHeader& complete_bitset_header);
3086
3095 const CompleteBitsetType& complete_bitset_type);
3096
3105 const MinimalBitsetType& minimal_bitset_type);
3106
3115 const CompleteTypeObject& complete_type_object);
3116
3125 const MinimalTypeObject& minimal_type_object);
3126 //}}}
3127};
3128
3129} // xtypes
3130} // dds
3131} // fastdds
3132} // eprosima
3133
3134#endif // FASTDDS_DDS_XTYPES_TYPE_REPRESENTATION__TYPEOBJECTUTILS_HPP
This class represents the union AnnotationParameterValue defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:4279
This class represents the structure AppliedAnnotation defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:6331
This class represents the structure AppliedAnnotationParameter defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:6149
This class represents the structure AppliedBuiltinMemberAnnotations defined by the user in the IDL fi...
Definition dds_xtypes_typeobject.hpp:6740
This class represents the structure AppliedBuiltinTypeAnnotations defined by the user in the IDL file...
Definition dds_xtypes_typeobject.hpp:7955
This class represents the structure AppliedVerbatimAnnotation defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:6513
This class represents the structure CommonAliasBody defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:12528
This class represents the structure CommonAnnotationParameter defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:11208
This class represents the structure CommonArrayHeader defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:15313
This class represents the structure CommonBitfield defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:19302
This class represents the structure CommonBitflag defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:18187
This class represents the structure CommonCollectionElement defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:13930
This class represents the structure CommonCollectionHeader defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:14423
This class represents the structure CommonDiscriminatorMember defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:9854
This class represents the structure CommonEnumeratedHeader defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:17297
This class represents the structure CommonEnumeratedLiteral defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:16763
This class represents the structure CommonStructMember defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:7014
This class represents the structure CommonUnionMember defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:9226
This class represents the structure CompleteAliasBody defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:12708
This class represents the structure CompleteAliasHeader defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:13068
This class represents the structure CompleteAliasType defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:13296
This class represents the structure CompleteAnnotationHeader defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:11846
This class represents the structure CompleteAnnotationParameter defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:11388
This class represents the structure CompleteAnnotationType defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:12074
This class represents the structure CompleteArrayHeader defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:15446
This class represents the structure CompleteArrayType defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:15759
This class represents the structure CompleteBitfield defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:19546
This class represents the structure CompleteBitflag defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:18357
This class represents the structure CompleteBitmaskType defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:18848
This class represents the structure CompleteBitsetHeader defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:19910
This class represents the structure CompleteBitsetType defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:20138
This class represents the structure CompleteCollectionElement defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:14110
This class represents the structure CompleteCollectionHeader defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:14546
This class represents the structure CompleteDiscriminatorMember defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:10034
This class represents the structure CompleteElementDetail defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:13750
This class represents the structure CompleteEnumeratedHeader defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:17420
This class represents the structure CompleteEnumeratedLiteral defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:16933
This class represents the structure CompleteEnumeratedType defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:17733
This class represents the structure CompleteExtendedType defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:20592
This class represents the structure CompleteMapType defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:16213
This class represents the structure CompleteMemberDetail defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:7231
This class represents the structure CompleteSequenceType defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:14859
This class represents the structure CompleteStructHeader defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:8410
This class represents the structure CompleteStructMember defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:7591
This class represents the structure CompleteStructType defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:8770
This class represents the structure CompleteTypeDetail defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:8183
This class represents the union CompleteTypeObject defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:20687
This class represents the structure CompleteUnionHeader defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:10394
This class represents the structure CompleteUnionMember defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:9490
This class represents the structure CompleteUnionType defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:10660
This class represents the structure ExtendedAnnotationParameterValue defined by the user in the IDL f...
Definition dds_xtypes_typeobject.hpp:4184
This class represents the structure ExtendedTypeDefn defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:2617
Application is passing an invalid argument.
Definition Exception.hpp:59
This class represents the structure MinimalAliasType defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:13523
This class represents the structure MinimalAnnotationType defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:12301
This class represents the structure MinimalArrayType defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:15986
This class represents the structure MinimalBitmaskType defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:19075
This class represents the structure MinimalBitsetType defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:20365
This class represents the structure MinimalEnumeratedType defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:17960
This class represents the structure MinimalMapType defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:16487
This class represents the structure MinimalSequenceType defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:15086
This class represents the structure MinimalStructType defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:8997
This class represents the union MinimalTypeObject defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:22036
This class represents the structure MinimalUnionType defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:10934
This class represents the structure PlainArrayLElemDefn defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:1561
This class represents the structure PlainArraySElemDefn defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:1334
This class represents the structure PlainCollectionHeader defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:730
This class represents the structure PlainMapLTypeDefn defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:2099
This class represents the structure PlainMapSTypeDefn defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:1788
This class represents the structure PlainSequenceLElemDefn defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:1117
This class represents the structure PlainSequenceSElemDefn defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:900
This class represents the structure StringLTypeDefn defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:607
This class represents the structure StringSTypeDefn defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:484
This class represents the structure StronglyConnectedComponentId defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:2410
This class represents the union TypeIdentifier defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:2807
This class represents the structure TypeIdentifierPair defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:23845
This class represents the union TypeObjectHashId defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:147
This class represents the union TypeObject defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:23290
Definition TypeObjectUtils.hpp:48
static FASTDDS_EXPORTED_API const AppliedAnnotationParameter build_applied_annotation_parameter(const NameHash &paramname_hash, const AnnotationParameterValue &value)
Build AppliedAnnotationParameter instance.
static FASTDDS_EXPORTED_API ReturnCode_t build_and_register_sequence_type_object(const CompleteSequenceType &sequence_type, const std::string &type_name)
Register sequence TypeObject into TypeObjectRegistry.
static FASTDDS_EXPORTED_API const AnnotationParameterValue build_annotation_parameter_value(uint64_t uint64_value)
Build AnnotationParameterValue instance.
static void minimal_alias_type_consistency(const MinimalAliasType &minimal_alias_type)
Check MinimalAliasType consistency.
static void seq_sdefn_consistency(const PlainSequenceSElemDefn &plain_seq)
Check PlainSequenceSElemDefn consistency.
static FASTDDS_EXPORTED_API void add_complete_bitflag(CompleteBitflagSeq &sequence, const CompleteBitflag &bitflag)
Add complete bitflag to the sequence.
static void enum_bit_bound_consistency(BitBound bit_bound)
Check enumeration BitBound consistency.
static void complete_enumerated_literal_seq_consistency(const CompleteEnumeratedLiteralSeq &complete_enumerated_literal_seq)
Check CompleteEnumeratedLiteralSeq consistency.
static FASTDDS_EXPORTED_API const CommonArrayHeader build_common_array_header(const LBoundSeq &bound_seq)
MinimalSequenceType constructed from CompleteSequenceType.
static void complete_struct_header_consistency(const CompleteStructHeader &complete_struct_header)
Check CompleteStructHeader consistency.
static FASTDDS_EXPORTED_API ReturnCode_t build_and_register_bitmask_type_object(const CompleteBitmaskType &bitmask_type, const std::string &type_name, TypeIdentifierPair &type_ids)
Register bitmask TypeObject into TypeObjectRegistry.
static void complete_annotation_header_consistency(const CompleteAnnotationHeader &complete_annotation_header)
Check CompleteAnnotationHeader consistency.
static void complete_array_type_consistency(const CompleteArrayType &complete_array_type)
Check CompleteArrayType consistency.
static void common_union_member_consistency(const CommonUnionMember &common_union_member)
Check CommonUnionMember consistency.
static FASTDDS_EXPORTED_API const AnnotationParameterValue build_annotation_parameter_value(uint32_t uint32_value)
Build AnnotationParameterValue instance.
static void union_member_flag_consistency(UnionMemberFlag union_member_flag)
Check UnionMemberFlag consistency.
static FASTDDS_EXPORTED_API ReturnCode_t build_and_register_s_map_type_identifier(const PlainMapSTypeDefn &plain_map, const std::string &type_name, TypeIdentifierPair &type_ids)
Register small map TypeIdentifier into TypeObjectRegistry.
static FASTDDS_EXPORTED_API const CompleteBitmaskType build_complete_bitmask_type(BitmaskTypeFlag bitmask_flags, const CompleteBitmaskHeader &header, const CompleteBitflagSeq &flag_seq)
MinimalBitflag constructed from CompleteBitflag.
static void complete_bitmask_type_consistency(const CompleteBitmaskType &complete_bitmask_type)
Check CompleteBitmaskType consistency.
static void add_array_dimension(std::vector< element > &array_bound_seq, element dimension_bound)
Add dimension bound to the array bound sequence.
Definition TypeObjectUtils.hpp:256
static FASTDDS_EXPORTED_API const CommonAnnotationParameter build_common_annotation_parameter(AnnotationParameterFlag member_flags, const TypeIdentifier &member_type_id)
MinimalUnionType constructed from CompleteUnionType.
static void bitfield_holder_type_consistency(TypeKind holder_type, uint8_t bitcount)
Check consistency between the holder type and the bitcount.
static void complete_array_header_consistency(const CompleteArrayHeader &complete_array_header)
Check CompleteArrayHeader consistency.
static FASTDDS_EXPORTED_API const CommonStructMember build_common_struct_member(MemberId member_id, StructMemberFlag member_flags, const TypeIdentifier &member_type_id)
Build CommonStructMember instance.
static void string_ldefn_consistency(const StringLTypeDefn &string)
Check StringLTypeDefn consistency.
static void array_bound_seq_consistency(const T &array)
Check that the array_bound_seq is consistent: non-empty.
Definition TypeObjectUtils.hpp:2073
static void minimal_annotation_type_consistency(const MinimalAnnotationType &minimal_annotation_type)
Check MinimalAnnotationType consistency.
static void common_array_header_consistency(const CommonArrayHeader &common_array_header)
Check CommonArrayHeader consistency.
static FASTDDS_EXPORTED_API const StringLTypeDefn build_string_l_type_defn(LBound bound)
Build StringLTypeDefn instance.
static void complete_discriminator_member_consistency(const CompleteDiscriminatorMember &complete_discriminator_member)
Check CompleteDiscriminatorMember consistency.
static void common_enumerated_header_consistency(const CommonEnumeratedHeader &common_enumerated_header, bool bitmask=false)
Check CommonEnumeratedHeader consistency.
static FASTDDS_EXPORTED_API const CompleteTypeDetail build_complete_type_detail(const eprosima::fastcdr::optional< AppliedBuiltinTypeAnnotations > &ann_builtin, const eprosima::fastcdr::optional< AppliedAnnotationSeq > &ann_custom, const QualifiedTypeName &type_name)
MinimalTypeDetail constructed from CompleteTypeDetail: empty.
static FASTDDS_EXPORTED_API ReturnCode_t build_and_register_union_type_object(const CompleteUnionType &union_type, const std::string &type_name, TypeIdentifierPair &type_ids)
Register union TypeObject into TypeObjectRegistry.
static FASTDDS_EXPORTED_API void add_complete_annotation_parameter(CompleteAnnotationParameterSeq &sequence, const CompleteAnnotationParameter &param)
Add CompleteAnnotationParameter to sequence.
static FASTDDS_EXPORTED_API const CompleteEnumeratedHeader build_complete_enumerated_header(const CommonEnumeratedHeader &common, const CompleteTypeDetail &detail, bool bitmask=false)
Build CompleteEnumeratedHeader instance.
static void bit_position_consistency(uint16_t position)
Check bitflag position consistency.
static void bitmask_bit_bound_consistency(BitBound bit_bound)
Check bitmask BitBound consistency.
static void common_struct_member_consistency(const CommonStructMember &common_struct_member)
Check CommonStructMember consistency.
static void complete_union_type_consistency(const CompleteUnionType &complete_union_type)
Check CompleteUnionType consistency.
static void union_case_label_seq_consistency(const UnionCaseLabelSeq &union_case_label_seq)
Check UnionCaseLabelSeq consistency.
static FASTDDS_EXPORTED_API const AnnotationParameterValue build_annotation_parameter_value(char char_value)
Build AnnotationParameterValue instance.
static void map_sdefn_consistency(const PlainMapSTypeDefn &plain_map)
Check PlainMapSTypeDefn consistency.
static void direct_hash_type_identifier_consistency(const TypeIdentifier &type_id)
Check direct hash TypeIdentifier consistency.
static void complete_annotation_parameter_consistency(const CompleteAnnotationParameter &complete_annotation_parameter)
Check CompleteAnnotationParameter consistency.
static void complete_enumerated_header_consistency(const CompleteEnumeratedHeader &complete_enumerated_header, bool bitmask=false)
Check CompleteEnumeratedHeader consistency.
static void minimal_type_object_consistency(const MinimalTypeObject &minimal_type_object)
Check MinimalTypeObject consistency.
static FASTDDS_EXPORTED_API const CommonEnumeratedHeader build_common_enumerated_header(BitBound bit_bound, bool bitmask=false)
MinimalEnumeratedLiteral constructed from CompleteEnumeratedLiteral.
static void set_try_construct_behavior(MemberFlag &member_flag, TryConstructFailAction try_construct_kind)
Set the try construct behavior in a given MemberFlag.
static void complete_collection_element_consistency(const CompleteCollectionElement &complete_collection_element)
Check CompleteCollectionElement consistency.
static FASTDDS_EXPORTED_API const CompleteMapType build_complete_map_type(CollectionTypeFlag collection_flag, const CompleteCollectionHeader &header, const CompleteCollectionElement &key, const CompleteCollectionElement &element)
MinimalArrayType constructed from CompleteArrayType.
static FASTDDS_EXPORTED_API const StronglyConnectedComponentId build_strongly_connected_component_id(const TypeObjectHashId &sc_component_id, int32_t scc_length, int32_t scc_index)
Build StronglyConnectedComponentId instance.
static void l_bound_seq_consistency(const LBoundSeq &bound_seq)
Check LBoundSeq consistency.
static void common_alias_body_consistency(const CommonAliasBody &common_alias_body)
Check CommonAliasBody consistency.
static void array_sdefn_consistency(const PlainArraySElemDefn &plain_array)
Check PlainArraySElemDefn consistency.
static bool is_direct_hash_type_identifier(const TypeIdentifier &type_identifier)
Check if a given TypeIdentifier is direct hash.
static void complete_type_detail_consistency(const CompleteTypeDetail &complete_type_detail)
Check CompleteTypeDetail consistency.
static FASTDDS_EXPORTED_API const AnnotationParameterValue build_annotation_parameter_value(int64_t int64_value)
Build AnnotationParameterValue instance.
static void complete_union_header_consistency(const CompleteUnionHeader &complete_union_header)
Check CompleteUnionHeader consistency.
static FASTDDS_EXPORTED_API const CompleteStructMember build_complete_struct_member(const CommonStructMember &common, const CompleteMemberDetail &detail)
MinimalMemberDetail constructed from CompleteMemberDetail.
static void common_struct_member_and_complete_member_detail_consistency(const CommonStructMember &common_struct_member, const CompleteMemberDetail &complete_member_detail)
Check cross-consistency between CommonStructMember and CompleteMemberDetail.
static void common_bitfield_consistency(const CommonBitfield &common_bitfield)
Check CommonBitfield consistency.
static void minimal_bitset_type_consistency(const MinimalBitsetType &minimal_bitset_type)
Check MinimalBitsetType consistency.
static void minimal_map_type_consistency(const MinimalMapType &minimal_map_type)
Check MinimalMapType consistency.
static FASTDDS_EXPORTED_API const TypeIdentifier & retrieve_complete_type_identifier(const TypeIdentifierPair &type_ids, bool &ec)
If one of the TypeIdentifier in TypeIdentifierPair is complete, returns its reference.
static FASTDDS_EXPORTED_API const AnnotationParameterValue build_annotation_parameter_value(int16_t int16_value)
Build AnnotationParameterValue instance.
static void complete_union_member_consistency(const CompleteUnionMember &complete_union_member)
Check CompleteUnionMember consistency.
static FASTDDS_EXPORTED_API ReturnCode_t build_and_register_l_string_type_identifier(const StringLTypeDefn &string, const std::string &type_name, TypeIdentifierPair &type_ids, bool wstring=false)
Register large string/wstring TypeIdentifier into TypeObjectRegistry.
static FASTDDS_EXPORTED_API const PlainArrayLElemDefn build_plain_array_l_elem_defn(const PlainCollectionHeader &header, const LBoundSeq &array_bound_seq, const eprosima::fastcdr::external< TypeIdentifier > &element_identifier)
Build PlainArrayLElemDefn instance.
static bool is_fully_descriptive_type_identifier(const TypeIdentifier &type_identifier)
Check if a given TypeIdentifier is fully-descriptive.
static FASTDDS_EXPORTED_API ReturnCode_t build_and_register_alias_type_object(const CompleteAliasType &alias_type, const std::string &type_name, TypeIdentifierPair &type_ids)
Register alias TypeObject into TypeObjectRegistry.
static FASTDDS_EXPORTED_API const ExtendedTypeDefn build_extended_type_defn()
Build ExtendedTypeDefn instance (empty.
static FASTDDS_EXPORTED_API const CompleteAliasHeader build_complete_alias_header(const CompleteTypeDetail &detail)
MinimalAliasBody constructed from CompleteAliasBody.
static FASTDDS_EXPORTED_API const AnnotationParameterValue build_annotation_parameter_value_enum(int32_t enumerated_value)
Build AnnotationParameterValue instance.
static void minimal_union_type_consistency(const MinimalUnionType &minimal_union_type)
Check MinimalUnionType consistency.
static FASTDDS_EXPORTED_API ReturnCode_t build_and_register_enumerated_type_object(const CompleteEnumeratedType &enumerated_type, const std::string &type_name, TypeIdentifierPair &type_ids)
Register enumeration TypeObject into TypeObjectRegistry.
static void common_discriminator_member_type_identifier_consistency(const TypeIdentifier &type_id)
Check discriminator TypeIdentifier consistency.
static void complete_alias_type_consistency(const CompleteAliasType &complete_alias_type)
Check CompleteAliasType consistency.
static void minimal_array_type_consistency(const MinimalArrayType &minimal_array_type)
Check MinimalArrayType consistency.
static void type_identifier_consistency(const TypeIdentifier &type_identifier)
Check TypeIdentifier consistency.
static FASTDDS_EXPORTED_API const CompleteStructHeader build_complete_struct_header(const TypeIdentifier &base_type, const CompleteTypeDetail &detail)
Build CompleteStructHeader instance.
static FASTDDS_EXPORTED_API const StringSTypeDefn build_string_s_type_defn(SBound bound)
CollectionTypeFlag: Unused.
static FASTDDS_EXPORTED_API const CommonBitflag build_common_bitflag(uint16_t position, BitflagFlag flags)
MinimalEnumeratedType constructed from CompleteEnumeratedType.
static FASTDDS_EXPORTED_API const CompleteUnionHeader build_complete_union_header(const CompleteTypeDetail &detail)
MinimalDiscriminatorMember constructed from CompleteDiscriminatorMember.
static FASTDDS_EXPORTED_API const PlainMapLTypeDefn build_plain_map_l_type_defn(const PlainCollectionHeader &header, const LBound bound, const eprosima::fastcdr::external< TypeIdentifier > &element_identifier, const CollectionElementFlag key_flags, const eprosima::fastcdr::external< TypeIdentifier > &key_identifier)
Build PlainMapLTypeDefn instance.
static void applied_builtin_type_annotations_consistency(const AppliedBuiltinTypeAnnotations &applied_builtin_type_annotations)
Check AppliedBuiltinTypeAnnotations consistency.
static FASTDDS_EXPORTED_API UnionMemberFlag build_union_member_flag(TryConstructFailAction try_construct_kind, bool default_member, bool external)
Build UnionMemberFlag instance.
static FASTDDS_EXPORTED_API UnionDiscriminatorFlag build_union_discriminator_flag(TryConstructFailAction try_construct_kind, bool key)
Build UnionDiscriminatorFlag instance.
static void applied_annotation_type_identifier_consistency(const TypeIdentifier &annotation_type_id)
Check AppliedAnnotation TypeIdentifier consistency.
static void common_enumerated_literal_consistency(const CommonEnumeratedLiteral &common_enumerated_literal)
Check CommonEnumeratedLiteral consistency.
static FASTDDS_EXPORTED_API ReturnCode_t build_and_register_s_sequence_type_identifier(const PlainSequenceSElemDefn &plain_seq, const std::string &type_name, TypeIdentifierPair &type_ids)
Register small sequence TypeIdentifier into TypeObjectRegistry.
static FASTDDS_EXPORTED_API const CompleteElementDetail build_complete_element_detail(const eprosima::fastcdr::optional< AppliedBuiltinMemberAnnotations > &ann_builtin, const eprosima::fastcdr::optional< AppliedAnnotationSeq > &ann_custom)
MinimalAliasType constructed from CompleteAliasType.
static FASTDDS_EXPORTED_API const PlainMapSTypeDefn build_plain_map_s_type_defn(const PlainCollectionHeader &header, const SBound bound, const eprosima::fastcdr::external< TypeIdentifier > &element_identifier, const CollectionElementFlag key_flags, const eprosima::fastcdr::external< TypeIdentifier > &key_identifier)
Build PlainMapSTypeDefn instance.
static FASTDDS_EXPORTED_API ReturnCode_t build_and_register_struct_type_object(const CompleteStructType &struct_type, const std::string &type_name, TypeIdentifierPair &type_ids)
Register structure TypeObject into TypeObjectRegistry.
static void complete_type_object_consistency(const CompleteTypeObject &complete_type_object)
Check CompleteTypeObject consistency.
static bool is_indirect_hash_type_identifier(const TypeIdentifier &type_identifier)
Check if a given TypeIdentifier is indirect hash.
static FASTDDS_EXPORTED_API CollectionElementFlag build_collection_element_flag(TryConstructFailAction try_construct_kind, bool external)
Build CollectionElementFlag instance.
static FASTDDS_EXPORTED_API void add_complete_struct_member(CompleteStructMemberSeq &member_seq, const CompleteStructMember &member)
Add CompleteStructMember to the sequence.
static FASTDDS_EXPORTED_API void type_object_consistency(const TypeObject &type_object)
Check TypeObject consistency.
static FASTDDS_EXPORTED_API EnumeratedLiteralFlag build_enumerated_literal_flag(bool default_literal)
Build EnumeratedLiteralFlag instance.
static FASTDDS_EXPORTED_API const CommonCollectionElement build_common_collection_element(CollectionElementFlag element_flags, const TypeIdentifier &type)
Build CommonCollectionElement instance.
static void map_key_type_identifier_consistency(const TypeIdentifier &key_identifier)
Check map key_identifier consistency.
static FASTDDS_EXPORTED_API ReturnCode_t build_and_register_annotation_type_object(const CompleteAnnotationType &annotation_type, const std::string &type_name, TypeIdentifierPair &type_ids)
Register annotation TypeObject into TypeObjectRegistry.
static void minimal_sequence_type_consistency(const MinimalSequenceType &minimal_sequence_type)
Check MinimalSequenceType consistency.
static FASTDDS_EXPORTED_API const PlainArraySElemDefn build_plain_array_s_elem_defn(const PlainCollectionHeader &header, const SBoundSeq &array_bound_seq, const eprosima::fastcdr::external< TypeIdentifier > &element_identifier)
Build PlainArraySElemDefn instance.
static void type_flag_consistency(TypeFlag type_flag)
Check TypeFlag consistency: exactly one extensibility flag is set.
static FASTDDS_EXPORTED_API StructMemberFlag build_struct_member_flag(TryConstructFailAction try_construct_kind, bool optional, bool must_understand, bool key, bool external)
Build StructMemberFlag instance.
static FASTDDS_EXPORTED_API const AnnotationParameterValue build_annotation_parameter_value(float float32_value)
Build AnnotationParameterValue instance.
static FASTDDS_EXPORTED_API ReturnCode_t build_and_register_scc_type_identifier(const StronglyConnectedComponentId &scc, const std::string &type_name)
Register StronglyConnectedComponent TypeIdentifier into TypeObjectRegistry.
static FASTDDS_EXPORTED_API const CompleteAnnotationParameter build_complete_annotation_parameter(const CommonAnnotationParameter &common, const MemberName &name, const AnnotationParameterValue &default_value)
Build CompleteAnnotationParameter instance.
static FASTDDS_EXPORTED_API const CompleteAnnotationType build_complete_annotation_type(AnnotationTypeFlag annotation_flag, const CompleteAnnotationHeader &header, const CompleteAnnotationParameterSeq &member_seq)
MinimalAnnotationHeader constructed from CompleteAnnotationHeader: empty.
static void complete_bitset_type_consistency(const CompleteBitsetType &complete_bitset_type)
Check CompleteBitsetType consistency.
static void complete_collection_header_consistency(const CompleteCollectionHeader &complete_collection_header)
Check CompleteCollectionHeader consistency.
static FASTDDS_EXPORTED_API const CompleteBitfield build_complete_bitfield(const CommonBitfield &common, const CompleteMemberDetail &detail)
Build CompleteBitfield instance.
static FASTDDS_EXPORTED_API const CompleteAnnotationHeader build_complete_annotation_header(const QualifiedTypeName &annotation_name)
MinimalAnnotationParameter constructed from CompleteAnnotationParameter.
static void plain_map_type_components_consistency(const PlainCollectionHeader &header, const TypeIdentifier &type_identifier)
Check consistency between a given PlainCollectionHeader of a map and the related TypeIdentifier:
static void complete_sequence_type_consistency(const CompleteSequenceType &complete_sequence_type)
Check CompleteSequenceType consistency.
static void complete_alias_header_consistency(const CompleteAliasHeader &complete_alias_header)
Check CompleteAliasHeader consistency.
static void string_member_id_consistency(MemberId member_id, const std::string &string_value)
Check consistency between a string value and the MemberId (algorithm XTypes v1.3 Clause 7....
static FASTDDS_EXPORTED_API const AnnotationParameterValue build_annotation_parameter_value(uint8_t uint8_value)
Build AnnotationParameterValue instance.
static void common_discriminator_member_consistency(const CommonDiscriminatorMember &common_discriminator_member)
Check CommonDiscriminatorMember consistency.
static void complete_annotation_parameter_seq_consistency(const CompleteAnnotationParameterSeq &complete_annotation_parameter_seq)
Check CompleteAnnotationParameterSeq consistency.
static FASTDDS_EXPORTED_API ReturnCode_t build_and_register_map_type_object(const CompleteMapType &map_type, const std::string &type_name)
Register map TypeObject into TypeObjectRegistry.
static FASTDDS_EXPORTED_API void add_complete_enumerated_literal(CompleteEnumeratedLiteralSeq &sequence, const CompleteEnumeratedLiteral &enum_literal)
Add CompleteEnumeratedLiteral to sequence.
static FASTDDS_EXPORTED_API const ExtendedAnnotationParameterValue build_extended_annotation_parameter_value()
Build ExtendedAnnotationParameterValue instance (empty.
static void complete_struct_member_seq_consistency(const CompleteStructMemberSeq &complete_struct_member_seq)
Check CompleteStructMemberSeq consistency.
static FASTDDS_EXPORTED_API const CompleteAliasType build_complete_alias_type(AliasTypeFlag alias_flags, const CompleteAliasHeader &header, const CompleteAliasBody &body)
MinimalAliasHeader constructed from CompleteAliasHeader: empty.
static void complete_bitflag_seq_consistency(const CompleteBitflagSeq &complete_bitflag_seq)
Check CompleteBitflagSeq consistency.
static void applied_verbatim_annotation_consistency(const AppliedVerbatimAnnotation &applied_verbatim_annotation)
Check AppliedVerbatimAnnotation consistency.
static FASTDDS_EXPORTED_API const TypeIdentifier & retrieve_minimal_type_identifier(const TypeIdentifierPair &type_ids, bool &ec)
If one of the TypeIdentifier in TypeIdentifierPair is minimal, returns its reference.
static FASTDDS_EXPORTED_API const AnnotationParameterValue build_annotation_parameter_value(int32_t int32_value)
Build AnnotationParameterValue instance.
static void map_ldefn_consistency(const PlainMapLTypeDefn &plain_map)
Check PlainMapLTypeDefn consistency.
static FASTDDS_EXPORTED_API void add_complete_union_member(CompleteUnionMemberSeq &complete_union_member_seq, const CompleteUnionMember &member)
Add CompleteUnionMember to sequence.
static void array_ldefn_consistency(const PlainArrayLElemDefn &plain_array)
Check PlainArrayLElemDefn consistency.
static FASTDDS_EXPORTED_API const CompleteEnumeratedType build_complete_enumerated_type(EnumTypeFlag enum_flags, const CompleteEnumeratedHeader &header, const CompleteEnumeratedLiteralSeq &literal_seq)
MinimalEnumeratedHeader constructed from CompleteEnumeratedHeader.
static FASTDDS_EXPORTED_API const CommonBitfield build_common_bitfield(uint16_t position, BitsetMemberFlag flags, uint8_t bitcount, TypeKind holder_type)
Build CommonBitfield instance.
static FASTDDS_EXPORTED_API const AnnotationParameterValue build_annotation_parameter_value(long double float128_value)
Build AnnotationParameterValue instance.
static FASTDDS_EXPORTED_API const CompleteUnionMember build_complete_union_member(const CommonUnionMember &common, const CompleteMemberDetail &detail)
Build CompleteUnionMember instance.
static FASTDDS_EXPORTED_API const CompleteMemberDetail build_complete_member_detail(const MemberName &name, const eprosima::fastcdr::optional< AppliedBuiltinMemberAnnotations > &ann_builtin, const eprosima::fastcdr::optional< AppliedAnnotationSeq > &ann_custom)
Build CompleteMemberDetail instance.
friend class TypeObjectRegistry
Definition TypeObjectUtils.hpp:1958
static void complete_annotation_type_consistency(const CompleteAnnotationType &complete_annotation_type)
Check CompleteAnnotationType consistency.
static void union_discriminator_flag_consistency(UnionDiscriminatorFlag union_discriminator_flag)
Check UnionDiscriminatorFlag consistency.
static FASTDDS_EXPORTED_API ReturnCode_t build_and_register_bitset_type_object(const CompleteBitsetType &bitset_type, const std::string &type_name, TypeIdentifierPair &type_ids)
Register bitset TypeObject into TypeObjectRegistry.
static FASTDDS_EXPORTED_API UnionTypeFlag build_union_type_flag(ExtensibilityKind extensibility_kind, bool nested, bool autoid_hash)
Build UnionTypeFlag instance.
static FASTDDS_EXPORTED_API const AppliedBuiltinTypeAnnotations build_applied_builtin_type_annotations(const eprosima::fastcdr::optional< AppliedVerbatimAnnotation > &verbatim)
MinimalStructMember constructed from CompleteStructMember.
static void complete_bitflag_consistency(const CompleteBitflag &complete_bitflag)
Check CompleteBitflag consistency.
static void set_extensibility_kind(TypeFlag &type_flag, ExtensibilityKind extensibility_kind)
Set the extensibility kind in a given TypeFlag.
static FASTDDS_EXPORTED_API const CommonCollectionHeader build_common_collection_header(LBound bound)
MinimalCollectionElement constructed from CompleteCollectionElement.
static void complete_map_type_consistency(const CompleteMapType &complete_map_type)
Check CompleteMapType consistency.
static FASTDDS_EXPORTED_API const AnnotationParameterValue build_annotation_parameter_value(bool boolean_value)
Build AnnotationParameterValue instance.
static FASTDDS_EXPORTED_API const NameHash name_hash(const std::string &name)
Calculate the MD5 hash of the provided name.
static void applied_annotation_parameter_seq_consistency(const AppliedAnnotationParameterSeq &applied_annotation_parameter_seq)
Check AppliedAnnotationParameterSeq consistency.
static FASTDDS_EXPORTED_API const CompleteCollectionHeader build_complete_collection_header(const CommonCollectionHeader &common, const eprosima::fastcdr::optional< CompleteTypeDetail > &detail)
Build CompleteCollectionHeader instance.
static FASTDDS_EXPORTED_API ReturnCode_t build_and_register_l_map_type_identifier(const PlainMapLTypeDefn &plain_map, const std::string &type_name, TypeIdentifierPair &type_ids)
Register large map TypeIdentifier into TypeObjectRegistry.
static void minimal_struct_type_consistency(const MinimalStructType &minimal_struct_type)
Check MinimalStructType consistency.
static FASTDDS_EXPORTED_API const AnnotationParameterValue build_annotation_parameter_value(const eprosima::fastcdr::fixed_string< 128 > &string8_value)
Build AnnotationParameterValue instance.
static FASTDDS_EXPORTED_API const CompleteCollectionElement build_complete_collection_element(const CommonCollectionElement &common, const CompleteElementDetail &detail)
Build CompleteCollectionElement instance.
static FASTDDS_EXPORTED_API const PlainSequenceSElemDefn build_plain_sequence_s_elem_defn(const PlainCollectionHeader &header, SBound s_bound, const eprosima::fastcdr::external< TypeIdentifier > &element_identifier)
Build PlainSequenceSElemDefn instance.
static void complete_enumerated_literal_consistency(const CompleteEnumeratedLiteral &complete_enumerated_literal)
Check CompleteEnumeratedLiteral consistency.
static void common_annotation_parameter_type_identifier_default_value_consistency(const TypeIdentifier &type_id, const AnnotationParameterValue &value)
Check that the annotation value is of the same type as the given TypeIdentifier.
static void applied_annotation_consistency(const AppliedAnnotation &applied_annotation)
Check AppliedAnnotation consistency.
static void structure_base_type_consistency(const TypeIdentifier &base_type)
Check CompleteStructHeader base_type TypeIdentifier consistency.
static FASTDDS_EXPORTED_API const AnnotationParameterValue build_annotation_parameter_value(double float64_value)
Build AnnotationParameterValue instance.
static FASTDDS_EXPORTED_API const CompleteDiscriminatorMember build_complete_discriminator_member(const CommonDiscriminatorMember &common, const eprosima::fastcdr::optional< AppliedBuiltinTypeAnnotations > &ann_builtin, const eprosima::fastcdr::optional< AppliedAnnotationSeq > &ann_custom)
Build CompleteDiscriminatorMember instance.
static void struct_member_flag_consistency(StructMemberFlag member_flags)
Check StructMemberFlag consistency: MemberFlag consistency (try construct annotation).
static FASTDDS_EXPORTED_API const AppliedAnnotation build_applied_annotation(const TypeIdentifier &annotation_typeid, const eprosima::fastcdr::optional< AppliedAnnotationParameterSeq > &param_seq)
Build AppliedAnnotation instance.
static FASTDDS_EXPORTED_API const CompleteAliasBody build_complete_alias_body(const CommonAliasBody &common, const eprosima::fastcdr::optional< AppliedBuiltinMemberAnnotations > &ann_builtin, const eprosima::fastcdr::optional< AppliedAnnotationSeq > &ann_custom)
Build CompleteAliasBody instance.
static void set_type_flag(TypeFlag &type_flag, ExtensibilityKind extensibility_kind, bool nested, bool autoid_hash)
Set the TypeFlag object.
static FASTDDS_EXPORTED_API const CommonEnumeratedLiteral build_common_enumerated_literal(int32_t value, EnumeratedLiteralFlag flags)
MinimalMapType constructed from CompleteMapType.
static void minimal_bitmask_type_consistency(const MinimalBitmaskType &minimal_bitmask_type)
Check MinimalBitmaskType consistency.
static FASTDDS_EXPORTED_API void add_complete_bitfield(CompleteBitfieldSeq &sequence, const CompleteBitfield &bitfield)
Add complete bitfield to the sequence.
static void common_collection_element_consistency(const CommonCollectionElement &common_collection_element)
Check CommonCollectionElement consistency.
static void plain_collection_type_identifier_header_consistency(const PlainCollectionHeader &header, const TypeIdentifier &element_identifier)
Check consistency between a given PlainCollectionHeader and the related TypeIdentifier:
static FASTDDS_EXPORTED_API const AnnotationParameterValue build_annotation_parameter_value(wchar_t wchar_value)
Build AnnotationParameterValue instance.
static void complete_element_detail_consistency(const CompleteElementDetail &complete_element_detail)
Check CompleteElementDetail consistency.
static FASTDDS_EXPORTED_API const CompleteExtendedType build_complete_extended_type()
MinimalBitsetType constructed from CompleteBitsetType.
static void equivalence_kind_consistency(EquivalenceKind equiv_kind)
Check EquivalenceKind consistency.
static void complete_bitfield_seq_consistency(const CompleteBitfieldSeq &complete_bitfield_seq)
Check CompleteBitfieldSeq consistency.
static FASTDDS_EXPORTED_API const TypeObjectHashId build_type_object_hash_id(uint8_t discriminator, const EquivalenceHash &hash)
Build TypeObjectHashId instance.
static FASTDDS_EXPORTED_API ReturnCode_t build_and_register_l_sequence_type_identifier(const PlainSequenceLElemDefn &plain_seq, const std::string &type_name, TypeIdentifierPair &type_ids)
Register large sequence TypeIdentifier into TypeObjectRegistry.
static void minimal_enumerated_type_consistency(const MinimalEnumeratedType &minimal_enumerated_type)
Check MinimalEnumeratedType consistency.
static FASTDDS_EXPORTED_API const AnnotationParameterValue build_annotation_parameter_value(int8_t int8_value)
Build AnnotationParameterValue instance.
static FASTDDS_EXPORTED_API const AnnotationParameterValue build_annotation_parameter_value(uint16_t uint16_value)
Build AnnotationParameterValue instance.
static FASTDDS_EXPORTED_API ReturnCode_t build_and_register_l_array_type_identifier(const PlainArrayLElemDefn &plain_array, const std::string &type_name, TypeIdentifierPair &type_ids)
Register large array TypeIdentifier into TypeObjectRegistry.
static void common_annotation_parameter_consistency(const CommonAnnotationParameter &common_annotation_parameter)
Check CommonAnnotationParameter consistency.
static FASTDDS_EXPORTED_API const CompleteBitflag build_complete_bitflag(const CommonBitflag &common, const CompleteMemberDetail &detail)
Build CompleteBitflag instance.
static void common_bitflag_consistency(const CommonBitflag &common_bitflag)
Check CommonBitflag consistency.
static FASTDDS_EXPORTED_API const CompleteArrayHeader build_complete_array_header(const CommonArrayHeader &common, const CompleteTypeDetail &detail)
Build CompleteArrayHeader instance.
static FASTDDS_EXPORTED_API const CompleteUnionType build_complete_union_type(UnionTypeFlag union_flags, const CompleteUnionHeader &header, const CompleteDiscriminatorMember &discriminator, const CompleteUnionMemberSeq &member_seq)
MinimalUnionHeader constructed from CompleteUnionHeader.
static FASTDDS_EXPORTED_API const AnnotationParameterValue build_annotation_parameter_value(const std::wstring &string16_value)
Build AnnotationParameterValue instance.
static FASTDDS_EXPORTED_API const AnnotationParameterValue build_annotation_parameter_value_byte(uint8_t byte_value)
Build AnnotationParameterValue instance.
static void empty_flags_consistency(T flags)
Check empty flags consistency.
Definition TypeObjectUtils.hpp:2170
static void plain_collection_header_consistency(const PlainCollectionHeader &header)
Check PlainCollectionHeader consistency:
static void seq_ldefn_consistency(const PlainSequenceLElemDefn &plain_seq)
Check PlainSequenceLElemDefn consistency.
static FASTDDS_EXPORTED_API const CompleteStructType build_complete_struct_type(StructTypeFlag struct_flags, const CompleteStructHeader &header, const CompleteStructMemberSeq &member_seq)
MinimalStructHeader constructed from CompleteStructHeader.
static void common_union_member_complete_member_detail_consistency(const CommonUnionMember &common_union_member, const CompleteMemberDetail &complete_member_detail)
Check cross-consistency between CommonStructMember and CompleteMemberDetail.
static FASTDDS_EXPORTED_API void add_applied_annotation(AppliedAnnotationSeq &ann_custom_seq, const AppliedAnnotation &ann_custom)
Add AppliedAnnotation to the sequence.
static void hashid_builtin_annotation_not_applied_consistency(const eprosima::fastcdr::optional< AppliedBuiltinMemberAnnotations > &ann_builtin)
Check that hashid builtin annotation has not been set.
static void applied_annotation_seq_consistency(const AppliedAnnotationSeq &applied_annotation_seq)
Check AppliedAnnotationSeq consistency.
static void complete_enumerated_type_consistency(const CompleteEnumeratedType &complete_enumerated_type)
Check CompleteEnumeratedType consistency.
static void complete_union_member_seq_consistency(const CompleteUnionMemberSeq &complete_union_member_seq)
Check CompleteUnionMemberSeq consistency.
static FASTDDS_EXPORTED_API const AppliedVerbatimAnnotation build_applied_verbatim_annotation(PlacementKind placement, const eprosima::fastcdr::fixed_string< 32 > &language, const std::string &text)
Build AppliedVerbatimAnnotation instance.
static FASTDDS_EXPORTED_API void add_applied_annotation_parameter(AppliedAnnotationParameterSeq &param_seq, const AppliedAnnotationParameter &param)
Add AppliedAnnotationParameter to the sequence.
static FASTDDS_EXPORTED_API const CommonDiscriminatorMember build_common_discriminator_member(UnionDiscriminatorFlag member_flags, const TypeIdentifier &type_id)
MinimalUnionMember constructed from CompleteUnionMember.
static EquivalenceKind get_map_component_equiv_kind_for_consistency(const TypeIdentifier &identifier)
Retrieves the equivalence kind of a component within a map.
static FASTDDS_EXPORTED_API const CompleteSequenceType build_complete_sequence_type(CollectionTypeFlag collection_flag, const CompleteCollectionHeader &header, const CompleteCollectionElement &element)
MinimalCollectionHeader constructed from CompleteCollectionHeader.
static void complete_bitfield_consistency(const CompleteBitfield &complete_bitfield)
Check CompleteBitfield consistency.
static void complete_struct_member_consistency(const CompleteStructMember &complete_struct_member)
Check CompleteStructMember consistency.
static FASTDDS_EXPORTED_API const CompleteArrayType build_complete_array_type(CollectionTypeFlag collection_flag, const CompleteArrayHeader &header, const CompleteCollectionElement &element)
MinimalArrayHeader constructed from CompleteArrayHeader.
static void complete_struct_type_consistency(const CompleteStructType &complete_struct_type)
Check CompleteStructType consistency.
static void l_bound_consistency(LBound bound)
TypeObjectHashId is always consistent.
static FASTDDS_EXPORTED_API const PlainSequenceLElemDefn build_plain_sequence_l_elem_defn(const PlainCollectionHeader &header, LBound l_bound, const eprosima::fastcdr::external< TypeIdentifier > &element_identifier)
Build PlainSequenceLElemDefn instance.
static void complete_alias_body_consistency(const CompleteAliasBody &complete_alias_body)
Check CompleteAliasBody consistency.
static FASTDDS_EXPORTED_API ReturnCode_t build_and_register_s_string_type_identifier(const StringSTypeDefn &string, const std::string &type_name, TypeIdentifierPair &type_ids, bool wstring=false)
Primitive types are registered when TypeObjectRegistry is instantiated.
static FASTDDS_EXPORTED_API const CompleteBitsetHeader build_complete_bitset_header(const CompleteTypeDetail &detail)
MinimalBitfield constructed from CompleteBitfield.
static FASTDDS_EXPORTED_API ReturnCode_t build_and_register_s_array_type_identifier(const PlainArraySElemDefn &plain_array, const std::string &type_name, TypeIdentifierPair &type_ids)
Register small array TypeIdentifier into TypeObjectRegistry.
static FASTDDS_EXPORTED_API const PlainCollectionHeader build_plain_collection_header(EquivalenceKind equiv_kind, CollectionElementFlag element_flags)
Build PlainCollectionHeader instance.
static FASTDDS_EXPORTED_API void add_union_case_label(UnionCaseLabelSeq &label_seq, int32_t label)
MinimalStructType constructed from CompleteStructType.
static void enumerated_literal_flag_consistency(EnumeratedLiteralFlag enumerated_literal_flag)
Check EnumeratedLiteralFlag consistency: any flag different from default are not set.
static FASTDDS_EXPORTED_API const CompleteBitsetType build_complete_bitset_type(BitsetTypeFlag bitset_flags, const CompleteBitsetHeader &header, const CompleteBitfieldSeq &field_seq)
MinimalBitsetHeader constructed from CompleteBitsetHeader.
static FASTDDS_EXPORTED_API StructTypeFlag build_struct_type_flag(ExtensibilityKind extensibility_kind, bool nested, bool autoid_hash)
AnnotationParameterFlag: Unused.
static FASTDDS_EXPORTED_API const CompleteEnumeratedLiteral build_complete_enumerated_literal(const CommonEnumeratedLiteral &common, const CompleteMemberDetail &detail)
Build CompleteEnumeratedLiteral instance.
friend class eprosima::fastdds::dds::DynamicTypeBuilderFactoryImpl
Definition TypeObjectUtils.hpp:1959
static FASTDDS_EXPORTED_API ReturnCode_t build_and_register_array_type_object(const CompleteArrayType &array_type, const std::string &type_name)
Register array TypeObject into TypeObjectRegistry.
static void complete_bitset_header_consistency(const CompleteBitsetHeader &complete_bitset_header)
Check CompleteBitsetHeader consistency.
static FASTDDS_EXPORTED_API const AppliedBuiltinMemberAnnotations build_applied_builtin_member_annotations(const eprosima::fastcdr::optional< std::string > &unit, const eprosima::fastcdr::optional< AnnotationParameterValue > &min, const eprosima::fastcdr::optional< AnnotationParameterValue > &max, const eprosima::fastcdr::optional< std::string > &hash_id)
Build AppliedBuiltinMemberAnnotations instance.
static FASTDDS_EXPORTED_API const CommonUnionMember build_common_union_member(MemberId member_id, UnionMemberFlag member_flags, const TypeIdentifier &type_id, const UnionCaseLabelSeq &label_seq)
Build CommonUnionMember instance.
static void collection_element_flag_consistency(CollectionElementFlag collection_element_flag)
Check CollectionElementFlag consistency.
static void complete_member_detail_consistency(const CompleteMemberDetail &complete_member_detail)
Check CompleteMemberDetail consistency.
static FASTDDS_EXPORTED_API const CommonAliasBody build_common_alias_body(AliasMemberFlag related_flags, const TypeIdentifier &related_type)
MinimalAnnotationType constructed from CompleteAnnotationType.
Definition DomainParticipant.hpp:45
MemberFlag BitsetMemberFlag
Definition dds_xtypes_typeobject.hpp:444
uint32_t MemberId
Definition dds_xtypes_typeobject.hpp:4175
MemberFlag CollectionElementFlag
Definition dds_xtypes_typeobject.hpp:428
std::vector< CompleteUnionMember > CompleteUnionMemberSeq
Definition dds_xtypes_typeobject.hpp:9665
std::vector< AppliedAnnotation > AppliedAnnotationSeq
Definition dds_xtypes_typeobject.hpp:6506
TypeFlag BitsetTypeFlag
Definition dds_xtypes_typeobject.hpp:474
std::vector< CompleteEnumeratedLiteral > CompleteEnumeratedLiteralSeq
Definition dds_xtypes_typeobject.hpp:17108
TypeFlag CollectionTypeFlag
Definition dds_xtypes_typeobject.hpp:464
TypeFlag EnumTypeFlag
Definition dds_xtypes_typeobject.hpp:470
std::vector< LBound > LBoundSeq
Definition dds_xtypes_typeobject.hpp:134
uint32_t LBound
Definition dds_xtypes_typeobject.hpp:132
eprosima::fastcdr::fixed_string< TYPE_NAME_MAX_LENGTH > QualifiedTypeName
Definition dds_xtypes_typeobject.hpp:124
MemberFlag EnumeratedLiteralFlag
Definition dds_xtypes_typeobject.hpp:436
TypeFlag AliasTypeFlag
Definition dds_xtypes_typeobject.hpp:468
MemberFlag UnionDiscriminatorFlag
Definition dds_xtypes_typeobject.hpp:434
uint8_t EquivalenceKind
Definition dds_xtypes_typeobject.hpp:72
TypeFlag UnionTypeFlag
Definition dds_xtypes_typeobject.hpp:462
std::vector< SBound > SBoundSeq
Definition dds_xtypes_typeobject.hpp:139
TypeFlag StructTypeFlag
Definition dds_xtypes_typeobject.hpp:460
std::vector< AppliedAnnotationParameter > AppliedAnnotationParameterSeq
Definition dds_xtypes_typeobject.hpp:6324
eprosima::fastcdr::fixed_string< MEMBER_NAME_MAX_LENGTH > MemberName
Definition dds_xtypes_typeobject.hpp:121
eprosima::fastdds::dds::ReturnCode_t ReturnCode_t
Definition TypeObjectUtils.hpp:45
std::array< uint8_t, 4 > NameHash
Definition dds_xtypes_typeobject.hpp:130
MemberFlag StructMemberFlag
Definition dds_xtypes_typeobject.hpp:430
std::array< uint8_t, 14 > EquivalenceHash
Definition dds_xtypes_typeobject.hpp:128
std::vector< CompleteBitfield > CompleteBitfieldSeq
Definition dds_xtypes_typeobject.hpp:19721
TypeFlag BitmaskTypeFlag
Definition dds_xtypes_typeobject.hpp:472
std::vector< int32_t > UnionCaseLabelSeq
Definition dds_xtypes_typeobject.hpp:9219
MemberFlag UnionMemberFlag
Definition dds_xtypes_typeobject.hpp:432
TypeFlag AnnotationTypeFlag
Definition dds_xtypes_typeobject.hpp:466
const LBound INVALID_LBOUND
Definition dds_xtypes_typeobject.hpp:136
uint16_t BitBound
Definition dds_xtypes_typeobject.hpp:16756
MemberFlag AliasMemberFlag
Definition dds_xtypes_typeobject.hpp:440
ExtensibilityKind
Definition common.hpp:31
TryConstructFailAction
Definition common.hpp:38
std::vector< CompleteBitflag > CompleteBitflagSeq
Definition dds_xtypes_typeobject.hpp:18532
std::vector< CompleteAnnotationParameter > CompleteAnnotationParameterSeq
Definition dds_xtypes_typeobject.hpp:11610
MemberFlag BitflagFlag
Definition dds_xtypes_typeobject.hpp:442
uint16_t MemberFlag
Definition dds_xtypes_typeobject.hpp:427
MemberFlag AnnotationParameterFlag
Definition dds_xtypes_typeobject.hpp:438
uint16_t TypeFlag
Definition dds_xtypes_typeobject.hpp:459
std::vector< CompleteStructMember > CompleteStructMemberSeq
Definition dds_xtypes_typeobject.hpp:7766
PlacementKind
PlacementKind values (verbatim annotation)
Definition common.hpp:48
uint8_t TypeKind
Definition dds_xtypes_typeobject.hpp:77
uint8_t SBound
Definition dds_xtypes_typeobject.hpp:137
int32_t ReturnCode_t
Definition DDSReturnCode.hpp:59
eProsima namespace.