Fawkes API  Fawkes Development Version
ToLuaInterfaceGenerator Class Reference

Generator that transforms input from the InterfaceParser into valid ToLua++ package file. More...

#include <>>

Public Member Functions

 ToLuaInterfaceGenerator (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. More...
 
 ~ToLuaInterfaceGenerator ()
 Destructor. More...
 
void write_toluaf (FILE *f)
 Write h file. More...
 
void write_header (FILE *f, std::string filename)
 Write header to file. More...
 
void write_constants_h (FILE *f)
 Write constants to h file. More...
 
void write_messages_h (FILE *f)
 Write messages to h file. More...
 
void write_message_superclass_h (FILE *f)
 Write superclass methods. More...
 
void write_superclass_h (FILE *f)
 Write superclass methods. More...
 
void write_lua_code (FILE *f, std::string classname)
 Write additional Lua code to file. More...
 
void write_methods_h (FILE *f, std::string is, std::vector< InterfaceField > fields)
 Write methods to h file. More...
 
void write_methods_h (FILE *f, std::string is, std::vector< InterfaceField > fields, std::vector< InterfacePseudoMap > pseudo_maps)
 Write methods to h file. More...
 
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. More...
 
void write_ctor_dtor_h (FILE *f, std::string is, std::string classname)
 Write constructor and destructor to h file. More...
 
void generate ()
 Generator cpp and h files. More...
 
const char * convert_type (std::string c_type)
 Convert C type to Lua type. More...
 

Detailed Description

Generator that transforms input from the InterfaceParser into valid ToLua++ package file.

Author
Tim Niemueller

Definition at line 36 of file tolua_generator.h.

Constructor & Destructor Documentation

◆ ToLuaInterfaceGenerator()

ToLuaInterfaceGenerator::ToLuaInterfaceGenerator ( 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.

Parameters
directoryDirectory where to create the files
interface_namename of the interface, should end with Interface
config_basenamebasename of the config without suffix
authorauthor of interface
yearyear of copyright
creation_dateuser-supplied creation date of interface
data_commentcomment in data block.
hashMD5 hash of the config file that was used to generate the interface
hash_sizesize in bytes of hash
constantsconstants
enum_constantsconstants defined as an enum
data_fieldsdata fields of the interface
pseudo_mapspseudo maps of the interface
messagesmessages defined in the interface

Definition at line 59 of file tolua_generator.cpp.

◆ ~ToLuaInterfaceGenerator()

ToLuaInterfaceGenerator::~ToLuaInterfaceGenerator ( )

Destructor.

Definition at line 100 of file tolua_generator.cpp.

Member Function Documentation

◆ convert_type()

const char * ToLuaInterfaceGenerator::convert_type ( std::string  c_type)

Convert C type to Lua type.

tolua++ does not deal well with stdint types, therefore we convert them to "traditional" types.

Parameters
c_typeC type to convert
Returns
constant string of the Lua compatible type

Definition at line 112 of file tolua_generator.cpp.

◆ generate()

void ToLuaInterfaceGenerator::generate ( )

Generator cpp and h files.

Definition at line 508 of file tolua_generator.cpp.

◆ write_constants_h()

void ToLuaInterfaceGenerator::write_constants_h ( FILE *  f)

Write constants to h file.

Parameters
ffile to write to

Definition at line 209 of file tolua_generator.cpp.

◆ write_ctor_dtor_h()

void ToLuaInterfaceGenerator::write_ctor_dtor_h ( FILE *  f,
std::string  is,
std::string  classname 
)

Write constructor and destructor to h file.

Parameters
ffile to write to
isindentation space
classnamename of class

Definition at line 264 of file tolua_generator.cpp.

◆ write_header()

void ToLuaInterfaceGenerator::write_header ( FILE *  f,
std::string  filename 
)

Write header to file.

Parameters
ffile to write to
filenamename of file

Definition at line 174 of file tolua_generator.cpp.

◆ write_lua_code()

void ToLuaInterfaceGenerator::write_lua_code ( FILE *  f,
std::string  classname 
)

Write additional Lua code to file.

The code is required for correctly type message access.

Parameters
ffile to write to
classnamename of the interface class

Definition at line 395 of file tolua_generator.cpp.

◆ write_message_ctor_dtor_h()

void ToLuaInterfaceGenerator::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.

Parameters
ffile to write to
isindentation space
classnamename of class
fieldsvector of data fields of message

Definition at line 282 of file tolua_generator.cpp.

◆ write_message_superclass_h()

void ToLuaInterfaceGenerator::write_message_superclass_h ( FILE *  f)

Write superclass methods.

Parameters
ffile to write to

Definition at line 366 of file tolua_generator.cpp.

◆ write_messages_h()

void ToLuaInterfaceGenerator::write_messages_h ( FILE *  f)

Write messages to h file.

Parameters
ffile to write to

Definition at line 243 of file tolua_generator.cpp.

◆ write_methods_h() [1/2]

void ToLuaInterfaceGenerator::write_methods_h ( FILE *  f,
std::string  is,
std::vector< InterfaceField fields 
)

Write methods to h file.

Parameters
ffile to write to
isindentation space.
fieldsfields to write accessor methods for.

Definition at line 415 of file tolua_generator.cpp.

◆ write_methods_h() [2/2]

void ToLuaInterfaceGenerator::write_methods_h ( FILE *  f,
std::string  is,
std::vector< InterfaceField fields,
std::vector< InterfacePseudoMap pseudo_maps 
)

Write methods to h file.

Parameters
ffile to write to
isindentation space.
fieldsfields to write accessor methods for.
pseudo_mapspseudo maps

Definition at line 459 of file tolua_generator.cpp.

◆ write_superclass_h()

void ToLuaInterfaceGenerator::write_superclass_h ( FILE *  f)

Write superclass methods.

Parameters
ffile to write to

Definition at line 313 of file tolua_generator.cpp.

◆ write_toluaf()

void ToLuaInterfaceGenerator::write_toluaf ( FILE *  f)

Write h file.

Parameters
ffile to write to

Definition at line 481 of file tolua_generator.cpp.


The documentation for this class was generated from the following files: