Fawkes API  Fawkes Development Version
ToLuaInterfaceGenerator Class Reference

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

#include <>>

List of all members.

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

Detailed Description

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

Author:
Tim Niemueller

Constructor & Destructor Documentation

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 ( )

Destructor.

Definition at line 100 of file tolua_generator.cpp.


Member Function Documentation

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.

void ToLuaInterfaceGenerator::generate ( )

Generator cpp and h files.

Definition at line 449 of file tolua_generator.cpp.

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.

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 263 of file tolua_generator.cpp.

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.

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 281 of file tolua_generator.cpp.

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.

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 360 of file tolua_generator.cpp.

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 404 of file tolua_generator.cpp.

void ToLuaInterfaceGenerator::write_superclass_h ( FILE *  f)

Write superclass methods.

Parameters:
ffile to write to

Definition at line 312 of file tolua_generator.cpp.

void ToLuaInterfaceGenerator::write_toluaf ( FILE *  f)

Write h file.

Parameters:
ffile to write to

Definition at line 426 of file tolua_generator.cpp.


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