8 #ifndef typeobject_generator_H 9 #define typeobject_generator_H 27 const std::vector<AST_EnumVal*>& contents,
const char* repoid);
29 bool gen_struct(AST_Structure* node, UTL_ScopedName* name,
30 const std::vector<AST_Field*>& fields,
31 AST_Type::SIZE_TYPE size,
const char* repoid);
33 bool gen_typedef(AST_Typedef* node, UTL_ScopedName* name, AST_Type* type,
const char* repoid);
35 bool gen_union(AST_Union* node, UTL_ScopedName* name,
36 const std::vector<AST_UnionBranch*>& branches,
37 AST_Type* type,
const char* repoid);
39 static std::string
tag_type(UTL_ScopedName* name);
64 return name < other.
name;
68 void consider(
Element& v, AST_Type* type,
const std::string& anonymous_name);
69 void strong_connect(AST_Type* type,
const std::string& anonymous_name);
88 bool generate(AST_Type* node, UTL_ScopedName* name);
118 typedef std::vector<AST_Type*>
Stack;
FullyDescriptiveTypeIdentifierMap fully_desc_type_identifier_map_
std::vector< AST_Type * > Stack
OpenDDS::XTypes::TypeMap minimal_type_map_
bool generate(AST_Type *node, UTL_ScopedName *name)
void strong_connect(AST_Type *type, const std::string &anonymous_name)
void declare_get_type_map()
std::map< AST_Type *, Element > element_
void generate_enum_type_identifier(AST_Type *type)
static std::string tag_type(UTL_ScopedName *name)
bool gen_enum(AST_Enum *node, UTL_ScopedName *name, const std::vector< AST_EnumVal *> &contents, const char *repoid)
void generate_primitive_type_identifier(AST_Type *type)
bool gen_struct(AST_Structure *node, UTL_ScopedName *name, const std::vector< AST_Field *> &fields, AST_Type::SIZE_TYPE size, const char *repoid)
void generate_union_type_identifier(AST_Type *type)
std::map< AST_Type *, TypeObjectPair > TypeObjectMap
void produce_output(bool flag)
void update_maps(AST_Type *type, const OpenDDS::XTypes::TypeObject &minimal_to, const OpenDDS::XTypes::TypeObject &complete_to)
OpenDDS::XTypes::TypeObject minimal
OpenDDS::XTypes::TypeObject complete
bool gen_union(AST_Union *node, UTL_ScopedName *name, const std::vector< AST_UnionBranch *> &branches, AST_Type *type, const char *repoid)
void set_builtin_member_annotations(AST_Decl *member, OpenDDS::XTypes::Optional< OpenDDS::XTypes::AppliedBuiltinMemberAnnotations > &annotations)
std::map< AST_Type *, TypeIdentifierPair > HashTypeIdentifierMap
void generate_array_type_identifier(AST_Type *type, bool force_type_object)
void consider(Element &v, AST_Type *type, const std::string &anonymous_name)
HashTypeIdentifierMap hash_type_identifier_map_
void generate_sequence_type_identifier(AST_Type *type, bool force_type_object)
void use_old_typeobject_encoding()
bool gen_typedef(AST_Typedef *node, UTL_ScopedName *name, AST_Type *type, const char *repoid)
bool produce_xtypes_complete_
OpenDDS::XTypes::TypeIdentifier get_minimal_type_identifier(AST_Type *type)
OpenDDS::XTypes::TypeIdentifier get_complete_type_identifier(AST_Type *type)
OpenDDS::XTypes::TypeMap complete_type_map_
void generate_alias_type_identifier(AST_Type *type)
bool operator<(const Element &other) const
TypeObjectMap type_object_map_
void generate_type_identifier(AST_Type *type, bool force_type_object)
OpenDDS::XTypes::TypeIdentifier minimal
void produce_xtypes_complete(bool flag)
bool get_type_map_declared_
OpenDDS::XTypes::TypeIdentifier complete
void generate_struct_type_identifier(AST_Type *type)
OpenDDS::DCPS::Encoding * typeid_encoding_
std::map< AST_Type *, OpenDDS::XTypes::TypeIdentifier > FullyDescriptiveTypeIdentifierMap