OMNeT++ NEDXML  5.4.1
MsgCodeGenerator Class Reference

#include <msgcodegenerator.h>

Description

Code generator part of the message compiler.

Public Types

typedef std::vector< std::string > StringVector
 
typedef MsgTypeTable::Properties Properties
 
typedef MsgTypeTable::FieldInfo FieldInfo
 
typedef MsgTypeTable::ClassInfo ClassInfo
 
typedef MsgTypeTable::EnumItem EnumItem
 
typedef MsgTypeTable::EnumInfo EnumInfo
 

Public Member Functions

void openFiles (const char *hFile, const char *ccFile)
 
void closeFiles ()
 
void deleteFiles ()
 
void generateProlog (const std::string &msgFileName, const std::string &firstNamespace, const std::string &exportDef)
 
void generateEpilog ()
 
void generateClass (const ClassInfo &classInfo, const std::string &exportDef, const std::string &extraCode="")
 
void generateStruct (const ClassInfo &classInfo, const std::string &exportDef, const std::string &extraCode="")
 
void generateDescriptorClass (const ClassInfo &a)
 
void generateEnum (const EnumInfo &enumInfo)
 
void generateImport (const std::string &importName)
 
void generateNamespaceBegin (const std::string &namespaceName, bool intoCcFile=true)
 
void generateNamespaceEnd (const std::string &namespaceName, bool intoCcFile=true)
 
void generateTypeAnnouncement (const ClassInfo &classInfo)
 
std::string generatePreComment (ASTNode *nedElement)
 
void generateCplusplusBlock (const std::string &target, const std::string &body)
 
void generateTemplates ()
 

Protected Member Functions

std::string prefixWithNamespace (const std::string &name, const std::string &namespaceName)
 
std::string makeFuncall (const std::string &var, const std::string &funcTemplate, bool withIndex=false, const std::string &value="")
 
void generateClassDecl (const ClassInfo &classInfo, const std::string &exportDef, const std::string &extraCode)
 
void generateClassImpl (const ClassInfo &classInfo)
 
void generateStructDecl (const ClassInfo &classInfo, const std::string &exportDef, const std::string &extraCode)
 
void generateStructImpl (const ClassInfo &classInfo)
 

Protected Attributes

std::string hFilename
 
std::string ccFilename
 
std::ofstream hStream
 
std::ofstream ccStream
 
std::string headerGuard
 

Member Typedef Documentation

typedef std::vector<std::string> StringVector

Member Function Documentation

std::string prefixWithNamespace ( const std::string &  name,
const std::string &  namespaceName 
)
protected
std::string makeFuncall ( const std::string &  var,
const std::string &  funcTemplate,
bool  withIndex = false,
const std::string &  value = "" 
)
protected
void generateClassDecl ( const ClassInfo classInfo,
const std::string &  exportDef,
const std::string &  extraCode 
)
protected
void generateClassImpl ( const ClassInfo classInfo)
protected
void generateStructDecl ( const ClassInfo classInfo,
const std::string &  exportDef,
const std::string &  extraCode 
)
protected
void generateStructImpl ( const ClassInfo classInfo)
protected
void openFiles ( const char *  hFile,
const char *  ccFile 
)
void closeFiles ( )
void deleteFiles ( )
void generateProlog ( const std::string &  msgFileName,
const std::string &  firstNamespace,
const std::string &  exportDef 
)
void generateEpilog ( )
void generateClass ( const ClassInfo classInfo,
const std::string &  exportDef,
const std::string &  extraCode = "" 
)
void generateStruct ( const ClassInfo classInfo,
const std::string &  exportDef,
const std::string &  extraCode = "" 
)
void generateDescriptorClass ( const ClassInfo a)
void generateEnum ( const EnumInfo enumInfo)
void generateImport ( const std::string &  importName)
void generateNamespaceBegin ( const std::string &  namespaceName,
bool  intoCcFile = true 
)
void generateNamespaceEnd ( const std::string &  namespaceName,
bool  intoCcFile = true 
)
void generateTypeAnnouncement ( const ClassInfo classInfo)
std::string generatePreComment ( ASTNode nedElement)
void generateCplusplusBlock ( const std::string &  target,
const std::string &  body 
)
void generateTemplates ( )

Member Data Documentation

std::string hFilename
protected
std::string ccFilename
protected
std::ofstream hStream
protected
std::ofstream ccStream
protected
std::string headerGuard
protected

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