![]() |
PhoenixGenerator
2.0.0
Set of tools to generate code
|
Class generator. More...
#include <PClassGenerator.h>
Public Member Functions | |
PClassGenerator () | |
Constructor of PClassGenerator. More... | |
bool | saveClassDef (std::ofstream &fs) |
Saves class definition. More... | |
bool | saveClassImpl (std::ofstream &fs) |
Saves class implementation. More... | |
bool | saveFileDef (const PPath &fileNameInclude, const PPath &fileNameSource) |
Saves class definition. More... | |
bool | saveFileImpl (const PPath &fileNameSource, const PPath &fileNameInclude) |
Saves class implementation. More... | |
bool | saveFileImplDef (const PPath &baseFileName) |
Saves both files include and sources of the class. More... | |
void | setClassName (const PString &className) |
Set the class name. More... | |
void | setTemplateDefVar (const PString &templateDef) |
Set the template definition. More... | |
virtual | ~PClassGenerator () |
Destructor of PClassGenerator. More... | |
Private Member Functions | |
void | initialisationPClassGenerator () |
Initialisation function of PClassGenerator. More... | |
void | saveConstructorDef (std::ofstream &fs) |
Saves the defition of the constructor. More... | |
void | saveConstructorImpl (std::ofstream &fs) |
Saves the implementation of the constructor. More... | |
void | saveCopyContructorDef (std::ofstream &fs) |
Saves the defition of the copy constructor. More... | |
void | saveCopyContructorImpl (std::ofstream &fs) |
Saves the implementation of the copy constructor. More... | |
void | saveCopyEqualOperatorDef (std::ofstream &fs) |
Saves the defition of the equal operator constructor. More... | |
void | saveCopyEqualOperatorImpl (std::ofstream &fs) |
Saves the implementation of the equal operator constructor. More... | |
void | saveCopyFunctionDef (std::ofstream &fs) |
Saves the defition of the copy function. More... | |
void | saveCopyFunctionImpl (std::ofstream &fs) |
Saves the implementation of the copy function. More... | |
void | saveDestructorDef (std::ofstream &fs) |
Saves the defition of the destructor. More... | |
void | saveDestructorImpl (std::ofstream &fs) |
Saves the implementation of the destructor. More... | |
void | saveInitialisationFunctionDef (std::ofstream &fs) |
Saves the definition of the initialisation function. More... | |
void | saveInitialisationFunctionImpl (std::ofstream &fs) |
Saves the implementation of the initialisation function. More... | |
void | saveTemplateBeginImpl (std::ofstream &fs, const PPath &fileNameInclude) |
Saves class implementation. More... | |
void | saveTemplateDefinition (std::ofstream &fs) |
Saves the template defition. More... | |
void | saveTemplateEndDefinition (std::ofstream &fs, const PPath &fileNameSource) |
Saves the template defition. More... | |
void | saveTemplateEndImpl (std::ofstream &fs) |
Saves class implementation template end. More... | |
Private Attributes | |
PString | p_classBrief |
Brief description of the class. More... | |
PString | p_className |
Name of the class. More... | |
PString | p_classNameSpace |
Namespace of the class. More... | |
PString | p_classTypeName |
Name of the class type (with template if there is one) More... | |
PString | p_templateDefVar |
Template def var. More... | |
PString | p_templateListVar |
Template list var. More... | |
bool | p_useCopyFunction |
True if we need to use a copy function. More... | |
bool | p_useTemplate |
Says if we need to use template. More... | |
Class generator.
Definition at line 15 of file PClassGenerator.h.
PClassGenerator::PClassGenerator | ( | ) |
Constructor of PClassGenerator.
Definition at line 12 of file PClassGenerator.cpp.
References initialisationPClassGenerator().
|
virtual |
|
private |
Initialisation function of PClassGenerator.
Definition at line 164 of file PClassGenerator.cpp.
References p_classTypeName, p_templateDefVar, p_templateListVar, p_useCopyFunction, and p_useTemplate.
Referenced by PClassGenerator().
bool PClassGenerator::saveClassDef | ( | std::ofstream & | fs | ) |
Saves class definition.
fs | : file to write |
Definition at line 88 of file PClassGenerator.cpp.
References p_classBrief, p_className, saveConstructorDef(), saveCopyContructorDef(), saveCopyEqualOperatorDef(), saveCopyFunctionDef(), saveDestructorDef(), saveInitialisationFunctionDef(), and saveTemplateDefinition().
Referenced by saveFileDef().
bool PClassGenerator::saveClassImpl | ( | std::ofstream & | fs | ) |
Saves class implementation.
fs | : file to write |
Definition at line 110 of file PClassGenerator.cpp.
References saveConstructorImpl(), saveCopyContructorImpl(), saveCopyEqualOperatorImpl(), saveCopyFunctionImpl(), saveDestructorImpl(), and saveInitialisationFunctionImpl().
Referenced by saveFileImpl().
|
private |
Saves the defition of the constructor.
fs | : file in witch to write |
Definition at line 212 of file PClassGenerator.cpp.
References p_className.
Referenced by saveClassDef().
|
private |
Saves the implementation of the constructor.
fs | : file in witch to write |
Definition at line 219 of file PClassGenerator.cpp.
References PString::firstToUpper(), p_className, p_classNameSpace, and saveTemplateDefinition().
Referenced by saveClassImpl().
|
private |
Saves the defition of the copy constructor.
fs | : file in witch to write |
Definition at line 269 of file PClassGenerator.cpp.
References p_className, p_classTypeName, and p_useCopyFunction.
Referenced by saveClassDef().
|
private |
Saves the implementation of the copy constructor.
fs | : file in witch to write |
Definition at line 277 of file PClassGenerator.cpp.
References PString::firstToUpper(), p_className, p_classNameSpace, p_classTypeName, p_useCopyFunction, and saveTemplateDefinition().
Referenced by saveClassImpl().
|
private |
Saves the defition of the equal operator constructor.
fs | : file in witch to write |
Definition at line 292 of file PClassGenerator.cpp.
References p_className, p_classTypeName, and p_useCopyFunction.
Referenced by saveClassDef().
|
private |
Saves the implementation of the equal operator constructor.
fs | : file in witch to write |
Definition at line 300 of file PClassGenerator.cpp.
References PString::firstToUpper(), p_className, p_classNameSpace, p_classTypeName, p_useCopyFunction, and saveTemplateDefinition().
Referenced by saveClassImpl().
|
private |
Saves the defition of the copy function.
fs | : file in witch to write |
Definition at line 318 of file PClassGenerator.cpp.
References PString::firstToUpper(), p_className, p_classTypeName, and p_useCopyFunction.
Referenced by saveClassDef().
|
private |
Saves the implementation of the copy function.
fs | : file in witch to write |
Definition at line 326 of file PClassGenerator.cpp.
References PString::firstToUpper(), p_className, p_classNameSpace, p_classTypeName, p_useCopyFunction, and saveTemplateDefinition().
Referenced by saveClassImpl().
|
private |
Saves the defition of the destructor.
fs | : file in witch to write |
Definition at line 231 of file PClassGenerator.cpp.
References p_className.
Referenced by saveClassDef().
|
private |
Saves the implementation of the destructor.
fs | : file in witch to write |
Definition at line 238 of file PClassGenerator.cpp.
References p_className, p_classNameSpace, and saveTemplateDefinition().
Referenced by saveClassImpl().
Saves class definition.
fileNameInclude | : file to write |
fileNameSource | : file of source |
Definition at line 43 of file PClassGenerator.cpp.
References licenceSave(), makeMultiIncludeDefineMacro(), saveClassDef(), and saveTemplateEndDefinition().
Referenced by saveFileImplDef().
Saves class implementation.
fileNameSource | : file to write |
fileNameInclude | : include file name |
Definition at line 66 of file PClassGenerator.cpp.
References licenceSave(), saveClassImpl(), saveTemplateBeginImpl(), and saveTemplateEndImpl().
Referenced by saveFileImplDef().
bool PClassGenerator::saveFileImplDef | ( | const PPath & | baseFileName | ) |
Saves both files include and sources of the class.
baseFileName | : base of the files names to write |
Definition at line 25 of file PClassGenerator.cpp.
References p_className, p_useTemplate, saveFileDef(), and saveFileImpl().
|
private |
Saves the definition of the initialisation function.
fs | : file in witch to write |
Definition at line 250 of file PClassGenerator.cpp.
References PString::firstToUpper(), and p_className.
Referenced by saveClassDef().
|
private |
Saves the implementation of the initialisation function.
fs | : file in witch to write |
Definition at line 257 of file PClassGenerator.cpp.
References PString::firstToUpper(), p_className, p_classNameSpace, and saveTemplateDefinition().
Referenced by saveClassImpl().
|
private |
Saves class implementation.
fs | : file to write |
fileNameInclude | : file to write |
Definition at line 193 of file PClassGenerator.cpp.
References p_useTemplate, PString::replace(), and PString::toUpper().
Referenced by saveFileImpl().
|
private |
Saves the template defition.
fs | : file in witch to write |
Definition at line 175 of file PClassGenerator.cpp.
References p_templateDefVar, and p_useTemplate.
Referenced by saveClassDef(), saveConstructorImpl(), saveCopyContructorImpl(), saveCopyEqualOperatorImpl(), saveCopyFunctionImpl(), saveDestructorImpl(), and saveInitialisationFunctionImpl().
|
private |
Saves the template defition.
fs | : file in witch to write |
fileNameSource | : source file |
Definition at line 184 of file PClassGenerator.cpp.
References p_useTemplate.
Referenced by saveFileDef().
|
private |
Saves class implementation template end.
fs | : file to write |
Definition at line 203 of file PClassGenerator.cpp.
References p_useTemplate.
Referenced by saveFileImpl().
void PClassGenerator::setClassName | ( | const PString & | className | ) |
Set the class name.
className | : class name |
Definition at line 127 of file PClassGenerator.cpp.
References p_className, p_classNameSpace, and p_classTypeName.
void PClassGenerator::setTemplateDefVar | ( | const PString & | templateDef | ) |
Set the template definition.
templateDef | : template definition |
Definition at line 136 of file PClassGenerator.cpp.
References p_className, p_classNameSpace, p_classTypeName, p_templateDefVar, p_templateListVar, p_useTemplate, and PString::split().
|
private |
Brief description of the class.
Definition at line 62 of file PClassGenerator.h.
Referenced by saveClassDef().
|
private |
Name of the class.
Definition at line 56 of file PClassGenerator.h.
Referenced by saveClassDef(), saveConstructorDef(), saveConstructorImpl(), saveCopyContructorDef(), saveCopyContructorImpl(), saveCopyEqualOperatorDef(), saveCopyEqualOperatorImpl(), saveCopyFunctionDef(), saveCopyFunctionImpl(), saveDestructorDef(), saveDestructorImpl(), saveFileImplDef(), saveInitialisationFunctionDef(), saveInitialisationFunctionImpl(), setClassName(), and setTemplateDefVar().
|
private |
Namespace of the class.
Definition at line 60 of file PClassGenerator.h.
Referenced by saveConstructorImpl(), saveCopyContructorImpl(), saveCopyEqualOperatorImpl(), saveCopyFunctionImpl(), saveDestructorImpl(), saveInitialisationFunctionImpl(), setClassName(), and setTemplateDefVar().
|
private |
Name of the class type (with template if there is one)
Definition at line 58 of file PClassGenerator.h.
Referenced by initialisationPClassGenerator(), saveCopyContructorDef(), saveCopyContructorImpl(), saveCopyEqualOperatorDef(), saveCopyEqualOperatorImpl(), saveCopyFunctionDef(), saveCopyFunctionImpl(), setClassName(), and setTemplateDefVar().
|
private |
Template def var.
Definition at line 66 of file PClassGenerator.h.
Referenced by initialisationPClassGenerator(), saveTemplateDefinition(), and setTemplateDefVar().
|
private |
Template list var.
Definition at line 68 of file PClassGenerator.h.
Referenced by initialisationPClassGenerator(), and setTemplateDefVar().
|
private |
True if we need to use a copy function.
Definition at line 64 of file PClassGenerator.h.
Referenced by initialisationPClassGenerator(), saveCopyContructorDef(), saveCopyContructorImpl(), saveCopyEqualOperatorDef(), saveCopyEqualOperatorImpl(), saveCopyFunctionDef(), and saveCopyFunctionImpl().
|
private |
Says if we need to use template.
Definition at line 70 of file PClassGenerator.h.
Referenced by initialisationPClassGenerator(), saveFileImplDef(), saveTemplateBeginImpl(), saveTemplateDefinition(), saveTemplateEndDefinition(), saveTemplateEndImpl(), and setTemplateDefVar().