Fast DDS  Version 3.6.1.0
Fast DDS
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 
35 namespace eprosima {
36 namespace fastdds {
37 namespace dds {
38 
39 class DynamicTypeBuilderFactoryImpl;
40 
41 namespace xtypes {
42 
43 class TypeObjectRegistry;
44 
46 
48 {
49 public:
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 
222  FASTDDS_EXPORTED_API static const PlainSequenceSElemDefn build_plain_sequence_s_elem_defn(
223  const PlainCollectionHeader& header,
224  SBound s_bound,
225  const eprosima::fastcdr::external<TypeIdentifier>& element_identifier);
226 
242  FASTDDS_EXPORTED_API static const PlainSequenceLElemDefn build_plain_sequence_l_elem_defn(
243  const PlainCollectionHeader& header,
244  LBound l_bound,
245  const eprosima::fastcdr::external<TypeIdentifier>& element_identifier);
246 
255  template<typename element>
256  static void add_array_dimension(
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 
551  const StronglyConnectedComponentId& scc,
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 
1172  FASTDDS_EXPORTED_API static const CompleteAnnotationType build_complete_annotation_type(
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 
1311  FASTDDS_EXPORTED_API static const CommonCollectionHeader build_common_collection_header(
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(
1477  CompleteEnumeratedLiteralSeq& sequence,
1478  const CompleteEnumeratedLiteral& enum_literal);
1479 
1495  FASTDDS_EXPORTED_API static const CommonEnumeratedHeader build_common_enumerated_header(
1496  BitBound bit_bound,
1497  bool bitmask = false);
1498 
1512  const CommonEnumeratedHeader& common,
1513  const CompleteTypeDetail& detail,
1514  bool bitmask = false);
1515 
1532  FASTDDS_EXPORTED_API static const CompleteEnumeratedType build_complete_enumerated_type(
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 
1956 private:
1957 
1958  friend class TypeObjectRegistry;
1960 
1961  // Class with only static methods
1962  TypeObjectUtils() = delete;
1963  ~TypeObjectUtils() = delete;
1964 
1965 protected:
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 
2061  static void l_bound_consistency(
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:4341
This class represents the structure AppliedAnnotation defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:6414
This class represents the structure AppliedAnnotationParameter defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:6232
This class represents the structure AppliedBuiltinMemberAnnotations defined by the user in the IDL fi...
Definition: dds_xtypes_typeobject.hpp:6823
This class represents the structure AppliedBuiltinTypeAnnotations defined by the user in the IDL file...
Definition: dds_xtypes_typeobject.hpp:8038
This class represents the structure AppliedVerbatimAnnotation defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:6596
This class represents the structure CommonAliasBody defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:12611
This class represents the structure CommonAnnotationParameter defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:11291
This class represents the structure CommonArrayHeader defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:15396
This class represents the structure CommonBitfield defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:19385
This class represents the structure CommonBitflag defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:18270
This class represents the structure CommonCollectionElement defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:14013
This class represents the structure CommonCollectionHeader defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:14506
This class represents the structure CommonDiscriminatorMember defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:9937
This class represents the structure CommonEnumeratedHeader defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:17380
This class represents the structure CommonEnumeratedLiteral defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:16846
This class represents the structure CommonStructMember defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:7097
This class represents the structure CommonUnionMember defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:9309
This class represents the structure CompleteAliasBody defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:12791
This class represents the structure CompleteAliasHeader defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:13151
This class represents the structure CompleteAliasType defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:13379
This class represents the structure CompleteAnnotationHeader defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:11929
This class represents the structure CompleteAnnotationParameter defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:11471
This class represents the structure CompleteAnnotationType defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:12157
This class represents the structure CompleteArrayHeader defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:15529
This class represents the structure CompleteArrayType defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:15842
This class represents the structure CompleteBitfield defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:19629
This class represents the structure CompleteBitflag defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:18440
This class represents the structure CompleteBitmaskType defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:18931
This class represents the structure CompleteBitsetHeader defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:19993
This class represents the structure CompleteBitsetType defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:20221
This class represents the structure CompleteCollectionElement defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:14193
This class represents the structure CompleteCollectionHeader defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:14629
This class represents the structure CompleteDiscriminatorMember defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:10117
This class represents the structure CompleteElementDetail defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:13833
This class represents the structure CompleteEnumeratedHeader defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:17503
This class represents the structure CompleteEnumeratedLiteral defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:17016
This class represents the structure CompleteEnumeratedType defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:17816
This class represents the structure CompleteExtendedType defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:20675
This class represents the structure CompleteMapType defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:16296
This class represents the structure CompleteMemberDetail defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:7314
This class represents the structure CompleteSequenceType defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:14942
This class represents the structure CompleteStructHeader defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:8493
This class represents the structure CompleteStructMember defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:7674
This class represents the structure CompleteStructType defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:8853
This class represents the structure CompleteTypeDetail defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:8266
This class represents the union CompleteTypeObject defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:20770
This class represents the structure CompleteUnionHeader defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:10477
This class represents the structure CompleteUnionMember defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:9573
This class represents the structure CompleteUnionType defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:10743
This class represents the structure ExtendedAnnotationParameterValue defined by the user in the IDL f...
Definition: dds_xtypes_typeobject.hpp:4246
This class represents the structure ExtendedTypeDefn defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:2630
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:13606
This class represents the structure MinimalAnnotationType defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:12384
This class represents the structure MinimalArrayType defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:16069
This class represents the structure MinimalBitmaskType defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:19158
This class represents the structure MinimalBitsetType defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:20448
This class represents the structure MinimalEnumeratedType defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:18043
This class represents the structure MinimalMapType defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:16570
This class represents the structure MinimalSequenceType defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:15169
This class represents the structure MinimalStructType defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:9080
This class represents the union MinimalTypeObject defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:22164
This class represents the structure MinimalUnionType defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:11017
This class represents the structure PlainArrayLElemDefn defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:1574
This class represents the structure PlainArraySElemDefn defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:1347
This class represents the structure PlainCollectionHeader defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:743
This class represents the structure PlainMapLTypeDefn defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:2112
This class represents the structure PlainMapSTypeDefn defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:1801
This class represents the structure PlainSequenceLElemDefn defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:1130
This class represents the structure PlainSequenceSElemDefn defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:913
This class represents the structure StringLTypeDefn defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:620
This class represents the structure StringSTypeDefn defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:497
This class represents the structure StronglyConnectedComponentId defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:2423
This class represents the union TypeIdentifier defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:2820
This class represents the structure TypeIdentifierPair defined by the user in the IDL file.
Definition: dds_xtypes_typeobject.hpp:24033
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:23463
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 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 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 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 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 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 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:46
MemberFlag BitsetMemberFlag
Definition: dds_xtypes_typeobject.hpp:457
uint32_t MemberId
Definition: dds_xtypes_typeobject.hpp:4237
MemberFlag CollectionElementFlag
Definition: dds_xtypes_typeobject.hpp:441
std::vector< CompleteUnionMember > CompleteUnionMemberSeq
Definition: dds_xtypes_typeobject.hpp:9748
std::vector< AppliedAnnotation > AppliedAnnotationSeq
Definition: dds_xtypes_typeobject.hpp:6589
TypeFlag BitsetTypeFlag
Definition: dds_xtypes_typeobject.hpp:487
std::vector< CompleteEnumeratedLiteral > CompleteEnumeratedLiteralSeq
Definition: dds_xtypes_typeobject.hpp:17191
TypeFlag CollectionTypeFlag
Definition: dds_xtypes_typeobject.hpp:477
TypeFlag EnumTypeFlag
Definition: dds_xtypes_typeobject.hpp:483
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:449
TypeFlag AliasTypeFlag
Definition: dds_xtypes_typeobject.hpp:481
MemberFlag UnionDiscriminatorFlag
Definition: dds_xtypes_typeobject.hpp:447
uint8_t EquivalenceKind
Definition: dds_xtypes_typeobject.hpp:72
TypeFlag UnionTypeFlag
Definition: dds_xtypes_typeobject.hpp:475
std::vector< SBound > SBoundSeq
Definition: dds_xtypes_typeobject.hpp:139
TypeFlag StructTypeFlag
Definition: dds_xtypes_typeobject.hpp:473
std::vector< AppliedAnnotationParameter > AppliedAnnotationParameterSeq
Definition: dds_xtypes_typeobject.hpp:6407
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:443
std::array< uint8_t, 14 > EquivalenceHash
Definition: dds_xtypes_typeobject.hpp:128
std::vector< CompleteBitfield > CompleteBitfieldSeq
Definition: dds_xtypes_typeobject.hpp:19804
TypeFlag BitmaskTypeFlag
Definition: dds_xtypes_typeobject.hpp:485
std::vector< int32_t > UnionCaseLabelSeq
Definition: dds_xtypes_typeobject.hpp:9302
MemberFlag UnionMemberFlag
Definition: dds_xtypes_typeobject.hpp:445
TypeFlag AnnotationTypeFlag
Definition: dds_xtypes_typeobject.hpp:479
const LBound INVALID_LBOUND
Definition: dds_xtypes_typeobject.hpp:136
uint16_t BitBound
Definition: dds_xtypes_typeobject.hpp:16839
MemberFlag AliasMemberFlag
Definition: dds_xtypes_typeobject.hpp:453
ExtensibilityKind
Definition: common.hpp:31
TryConstructFailAction
Definition: common.hpp:38
std::vector< CompleteBitflag > CompleteBitflagSeq
Definition: dds_xtypes_typeobject.hpp:18615
std::vector< CompleteAnnotationParameter > CompleteAnnotationParameterSeq
Definition: dds_xtypes_typeobject.hpp:11693
MemberFlag BitflagFlag
Definition: dds_xtypes_typeobject.hpp:455
uint16_t MemberFlag
Definition: dds_xtypes_typeobject.hpp:440
MemberFlag AnnotationParameterFlag
Definition: dds_xtypes_typeobject.hpp:451
uint16_t TypeFlag
Definition: dds_xtypes_typeobject.hpp:472
std::vector< CompleteStructMember > CompleteStructMemberSeq
Definition: dds_xtypes_typeobject.hpp:7849
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