23 #ifndef __INTERFACES_GENERATOR_CPP_GENERATOR_H_ 24 #define __INTERFACES_GENERATOR_CPP_GENERATOR_H_ 28 #include "enum_constant.h" 30 #include "pseudomap.h" 40 std::string config_basename, std::string author,
41 std::string year, std::string creation_date,
42 std::string data_comment,
43 const unsigned char *hash,
size_t hash_size,
44 const std::vector<InterfaceConstant> &constants,
45 const std::vector<InterfaceEnumConstant> &enum_constants,
46 const std::vector<InterfaceField> &data_fields,
47 const std::vector<InterfacePseudoMap> &pseudo_maps,
48 const std::vector<InterfaceMessage> &messages
62 std::string classname);
64 std::string inclusion_prefix, std::vector<InterfaceField> fields,
65 std::vector<InterfaceMessage> messages);
68 std::string classname,
69 std::vector<InterfaceField> fields);
71 std::string inclusion_prefix,
72 std::vector<InterfaceField> fields);
79 std::vector<InterfaceField> fields);
81 std::string interface_classname,
82 std::string classname,
83 std::vector<InterfaceField> fields,
84 std::string inclusion_prefix,
85 bool write_data_changed);
95 std::vector<InterfaceField> fields,
96 std::vector<InterfacePseudoMap> pseudo_maps);
98 std::string interface_classname,
99 std::string classname,
100 std::vector<InterfaceField> fields,
101 std::vector<InterfacePseudoMap> pseudo_maps,
102 std::string inclusion_prefix);
110 void write_struct(FILE *f, std::string name, std::string is,
111 std::vector<InterfaceField> fields);
119 std::vector<InterfaceConstant> constants;
120 std::vector<InterfaceEnumConstant> enum_constants;
121 std::vector<InterfaceField> data_fields;
122 std::vector<InterfacePseudoMap> pseudo_maps;
123 std::vector<InterfaceMessage> messages;
126 std::string filename_cpp;
127 std::string filename_h;
128 std::string filename_o;
129 std::string class_name;
130 std::string deflector;
134 std::string creation_date;
135 std::string data_comment;
137 const unsigned char *hash;
CppInterfaceGenerator(std::string directory, std::string interface_name, std::string config_basename, std::string author, std::string year, std::string creation_date, std::string data_comment, const unsigned char *hash, size_t hash_size, const std::vector< InterfaceConstant > &constants, const std::vector< InterfaceEnumConstant > &enum_constants, const std::vector< InterfaceField > &data_fields, const std::vector< InterfacePseudoMap > &pseudo_maps, const std::vector< InterfaceMessage > &messages)
Constructor.
void write_add_fieldinfo_calls(FILE *f, std::vector< InterfaceField > &fields)
Write the add_fieldinfo() calls.
void write_message_ctor_dtor_cpp(FILE *f, std::string classname, std::string super_class, std::string inclusion_prefix, std::vector< InterfaceField > fields)
Write constructor and destructor for message to cpp file.
void write_enum_map_population(FILE *f)
Write enum maps.
void write_messages_cpp(FILE *f)
Write messages to cpp file.
void write_management_funcs_cpp(FILE *f)
Write management functions.
void write_deflector(FILE *f)
Write header deflector.
void write_struct(FILE *f, std::string name, std::string is, std::vector< InterfaceField > fields)
Write optimized struct.
void write_basemethods_h(FILE *f, std::string is)
Write base methods header entries.
void write_constants_h(FILE *f)
Write constants to h file.
void generate()
Generator cpp and h files.
void write_cpp(FILE *f)
Write cpp file.
void write_create_message_method_cpp(FILE *f)
Write create_message() method to cpp file.
void write_message_ctor_dtor_h(FILE *f, std::string is, std::string classname, std::vector< InterfaceField > fields)
Write constructor and destructor for message to h file.
void write_message_clone_method_cpp(FILE *f, std::string classname)
Write message clone method.
void write_h(FILE *f)
Write h file.
void write_message_clone_method_h(FILE *f, std::string is)
Write message clone method header.
void write_ctor_dtor_cpp(FILE *f, std::string classname, std::string super_class, std::string inclusion_prefix, std::vector< InterfaceField > fields, std::vector< InterfaceMessage > messages)
Write constructor and destructor to cpp file.
void write_ctor_dtor_h(FILE *f, std::string is, std::string classname)
Write constructor and destructor to h file.
void write_enum_maps_h(FILE *f)
Write enum maps to header.
Generator that transforms input from the InterfaceParser into valid C++ classes.
void write_methods_h(FILE *f, std::string is, std::vector< InterfaceField > fields)
Write methods to h file.
void write_enum_constants_tostring_cpp(FILE *f)
Write enum constant tostring methods to cpp file.
void write_copy_value_method_cpp(FILE *f)
Write copy_value() method to CPP file.
void write_basemethods_cpp(FILE *f)
Write base methods.
void write_messages_h(FILE *f)
Write messages to h file.
~CppInterfaceGenerator()
Destructor.
void write_methods_cpp(FILE *f, std::string interface_classname, std::string classname, std::vector< InterfaceField > fields, std::string inclusion_prefix, bool write_data_changed)
Write methods to cpp file.
void write_enum_tostring_method_cpp(FILE *f)
Write enum_tostring() method to CPP file.
void write_header(FILE *f, std::string filename)
Write header to file.
void write_constants_cpp(FILE *f)
Write constants to cpp file.