15#ifndef TYPES_DYNAMIC_TYPE_BUILDER_FACTORY_H
16#define TYPES_DYNAMIC_TYPE_BUILDER_FACTORY_H
18#include <fastrtps/types/TypesBase.h>
19#include <fastrtps/types/AnnotationParameterValue.h>
20#include <fastrtps/types/DynamicTypePtr.h>
29class AnnotationDescriptor;
30class DynamicTypeBuilder;
33class MemberDescriptor;
37class AnnotationParameterValue;
54 bool complete =
true)
const;
65 bool complete =
true)
const;
70 bool complete =
true)
const;
75 bool complete =
true)
const;
80 const std::vector<const MemberDescriptor*> members,
81 bool complete =
true)
const;
86 const std::vector<const MemberDescriptor*> members,
87 bool complete =
true)
const;
92 const std::vector<const MemberDescriptor*> members,
93 bool complete =
true)
const;
98 const std::vector<const MemberDescriptor*> members,
99 bool complete =
true)
const;
104 const std::vector<const MemberDescriptor*> members,
105 bool complete =
true)
const;
110 const std::vector<const MemberDescriptor*> members,
111 bool complete =
true)
const;
121#ifndef DISABLE_DYNAMIC_MEMORY_CHECK
145 const std::string& name =
"");
192 const std::vector<uint32_t>& bounds);
196 const std::vector<uint32_t>& bounds);
215 const std::string& sName);
219 const std::string& sName);
235 const std::string& name);
239 const std::string& name =
"");
246 const std::string& sName);
250 const std::string& sName);
290 bool complete =
true)
const;
295 bool complete =
true)
const;
300 bool complete =
true,
301 bool force =
false)
const;
306 const std::vector<const MemberDescriptor*>* members =
nullptr,
307 bool complete =
true,
308 bool force =
false)
const;
This class represents the union AnnotationParameterValue defined by the user in the IDL file.
Definition AnnotationParameterValue.h:173
Definition DynamicTypePtr.h:27
Definition DynamicTypeBuilderFactory.h:40
RTPS_DllAPI DynamicTypeBuilder * create_char16_builder()
RTPS_DllAPI DynamicTypeBuilder * create_sequence_builder(const DynamicTypeBuilder *element_type, uint32_t bound=MAX_ELEMENTS_COUNT)
void build_enum_type_code(const TypeDescriptor *descriptor, TypeObject &object, const std::vector< const MemberDescriptor * > members, bool complete=true) const
RTPS_DllAPI DynamicTypeBuilder * create_int16_builder()
RTPS_DllAPI DynamicType_ptr create_float128_type()
RTPS_DllAPI DynamicTypeBuilder * create_enum_builder()
RTPS_DllAPI DynamicType_ptr create_int64_type()
DynamicType_ptr build_type(DynamicType_ptr other)
RTPS_DllAPI DynamicType_ptr create_string_type(uint32_t bound=MAX_STRING_LENGTH)
RTPS_DllAPI DynamicType_ptr create_uint32_type()
RTPS_DllAPI DynamicType_ptr create_float32_type()
RTPS_DllAPI DynamicType_ptr create_wstring_type(uint32_t bound=MAX_STRING_LENGTH)
RTPS_DllAPI DynamicTypeBuilder * create_alias_builder(DynamicType_ptr base_type, const std::string &sName)
RTPS_DllAPI void build_type_identifier(const TypeDescriptor *descriptor, TypeIdentifier &identifier, bool complete=true) const
void build_bitset_type_code(const TypeDescriptor *descriptor, TypeObject &object, const std::vector< const MemberDescriptor * > members, bool complete=true) const
RTPS_DllAPI DynamicTypeBuilder * create_char8_builder()
DynamicTypeBuilderFactory()
RTPS_DllAPI DynamicTypeBuilder * create_struct_builder()
RTPS_DllAPI DynamicType_ptr create_type(const DynamicTypeBuilder *other)
RTPS_DllAPI DynamicTypeBuilder * create_map_builder(DynamicType_ptr key_type, DynamicType_ptr value_type, uint32_t bound=MAX_ELEMENTS_COUNT)
RTPS_DllAPI DynamicTypeBuilder * create_wstring_builder(uint32_t bound=MAX_STRING_LENGTH)
RTPS_DllAPI bool is_empty() const
RTPS_DllAPI DynamicTypeBuilder * create_bitmask_builder(uint32_t bound)
RTPS_DllAPI DynamicType_ptr create_type(const TypeDescriptor *descriptor, const std::string &name="")
RTPS_DllAPI DynamicType_ptr create_float64_type()
RTPS_DllAPI DynamicType_ptr create_alias_type(DynamicTypeBuilder *base_type, const std::string &sName)
RTPS_DllAPI DynamicType_ptr get_primitive_type(TypeKind kind)
RTPS_DllAPI DynamicTypeBuilder * create_array_builder(const DynamicTypeBuilder *element_type, const std::vector< uint32_t > &bounds)
void build_alias_type_code(const TypeDescriptor *descriptor, TypeObject &object, bool complete=true) const
RTPS_DllAPI DynamicTypeBuilder * create_uint16_builder()
static RTPS_DllAPI ReturnCode_t delete_instance()
void build_string16_type_code(const TypeDescriptor *descriptor) const
RTPS_DllAPI DynamicTypeBuilder * create_child_struct_builder(DynamicTypeBuilder *parent_type)
RTPS_DllAPI DynamicTypeBuilder * create_float32_builder()
RTPS_DllAPI DynamicTypeBuilder * create_union_builder(DynamicType_ptr discriminator_type)
RTPS_DllAPI DynamicTypeBuilder * create_builder_copy(const DynamicTypeBuilder *type)
static RTPS_DllAPI DynamicTypeBuilderFactory * get_instance()
RTPS_DllAPI DynamicType_ptr create_int32_type()
RTPS_DllAPI DynamicTypeBuilder * create_string_builder(uint32_t bound=MAX_STRING_LENGTH)
RTPS_DllAPI DynamicType_ptr create_uint64_type()
RTPS_DllAPI DynamicTypeBuilder * create_float64_builder()
RTPS_DllAPI DynamicType_ptr create_bool_type()
void build_bitmask_type_code(const TypeDescriptor *descriptor, TypeObject &object, const std::vector< const MemberDescriptor * > members, bool complete=true) const
void build_annotation_type_code(const TypeDescriptor *descriptor, TypeObject &object, const std::vector< const MemberDescriptor * > members, bool complete=true) const
RTPS_DllAPI ReturnCode_t delete_type(DynamicType *type)
RTPS_DllAPI DynamicTypeBuilder * create_uint32_builder()
RTPS_DllAPI DynamicTypeBuilder * create_custom_builder(const TypeDescriptor *descriptor, const std::string &name="")
RTPS_DllAPI DynamicTypeBuilder * create_map_builder(DynamicTypeBuilder *key_element_type, DynamicTypeBuilder *element_type, uint32_t bound=MAX_ELEMENTS_COUNT)
RTPS_DllAPI void build_type_object(const TypeDescriptor *descriptor, TypeObject &object, const std::vector< const MemberDescriptor * > *members=nullptr, bool complete=true, bool force=false) const
RTPS_DllAPI DynamicTypeBuilder * create_union_builder(DynamicTypeBuilder *discriminator_type)
RTPS_DllAPI DynamicTypeBuilder * create_int32_builder()
RTPS_DllAPI ReturnCode_t delete_builder(DynamicTypeBuilder *builder)
RTPS_DllAPI void build_type_object(const DynamicType_ptr type, TypeObject &object, bool complete=true, bool force=false) const
RTPS_DllAPI DynamicType_ptr create_char8_type()
RTPS_DllAPI DynamicType_ptr create_annotation_primitive(const std::string &name)
RTPS_DllAPI DynamicTypeBuilder * create_bool_builder()
void build_struct_type_code(const TypeDescriptor *descriptor, TypeObject &object, const std::vector< const MemberDescriptor * > members, bool complete=true) const
void build_map_type_code(const TypeDescriptor *descriptor, TypeObject &object, bool complete=true) const
void apply_type_annotations(AppliedAnnotationSeq &annotations, const TypeDescriptor *descriptor) const
void build_sequence_type_code(const TypeDescriptor *descriptor, TypeObject &object, bool complete=true) const
std::vector< DynamicTypeBuilder * > builders_list_
Definition DynamicTypeBuilderFactory.h:122
RTPS_DllAPI DynamicTypeBuilder * create_uint64_builder()
void set_annotation_default_value(AnnotationParameterValue &apv, const MemberDescriptor *member) const
RTPS_DllAPI DynamicTypeBuilder * create_int64_builder()
RTPS_DllAPI DynamicType_ptr create_int16_type()
RTPS_DllAPI DynamicType_ptr create_alias_type(DynamicType_ptr base_type, const std::string &sName)
RTPS_DllAPI DynamicTypeBuilder * create_bitset_builder()
RTPS_DllAPI DynamicType_ptr create_uint16_type()
RTPS_DllAPI DynamicTypeBuilder * create_array_builder(const DynamicType_ptr type, const std::vector< uint32_t > &bounds)
std::recursive_mutex mutex_
Definition DynamicTypeBuilderFactory.h:123
RTPS_DllAPI DynamicTypeBuilder * create_alias_builder(DynamicTypeBuilder *base_type, const std::string &sName)
void add_builder_to_list(DynamicTypeBuilder *pBuilder)
void build_union_type_code(const TypeDescriptor *descriptor, TypeObject &object, const std::vector< const MemberDescriptor * > members, bool complete=true) const
RTPS_DllAPI DynamicTypeBuilder * create_byte_builder()
RTPS_DllAPI DynamicTypeBuilder * create_sequence_builder(const DynamicType_ptr type, uint32_t bound=MAX_ELEMENTS_COUNT)
void build_array_type_code(const TypeDescriptor *descriptor, TypeObject &object, bool complete=true) const
~DynamicTypeBuilderFactory()
RTPS_DllAPI DynamicTypeBuilder * create_float128_builder()
RTPS_DllAPI DynamicType_ptr create_byte_type()
RTPS_DllAPI DynamicType_ptr create_char16_type()
RTPS_DllAPI void build_type_identifier(const DynamicType_ptr type, TypeIdentifier &identifier, bool complete=true) const
void build_string8_type_code(const TypeDescriptor *descriptor) const
RTPS_DllAPI DynamicType_ptr create_bitset_type(uint32_t bound)
Definition DynamicTypeBuilder.h:32
Definition DynamicType.h:38
Definition MemberDescriptor.h:29
This class represents the enumeration ReturnCode_t.
Definition TypesBase.h:190
Definition TypeDescriptor.h:30
Definition TypeIdentifier.h:81
Definition TypeObject.h:7431
const int32_t MAX_ELEMENTS_COUNT
Definition TypesBase.h:290
std::vector< AppliedAnnotation > AppliedAnnotationSeq
Definition AnnotationParameterValue.h:1150
octet TypeKind
Definition TypesBase.h:120
const int32_t MAX_STRING_LENGTH
Definition TypesBase.h:291
eProsima namespace.
Definition LibrarySettingsAttributes.h:23