24 fs <<
"#include \"phoenix_config_stream.h\"" << std::endl;
90 PString name(classConfig.
getName());
92 name = name +
"::" + name;
94 fs <<
"template<>" << std::endl;
95 fs <<
"bool phoenix_config_stream<"<<name<<
">(ConfigNodeIter & iter, "<<name<<
" & data, const GenericConfigCheck * checker);" << std::endl << std::endl;
106 PString name(classConfig.
getName());
108 fs <<
"///Load and save the given " << name <<
" depending on the ConfigNodeIter mode (interface with PhoenixConfigStream)" << std::endl;
109 fs <<
"/**\t@param[out] iter : ConfigNodeIter to be used to load and save the configuration" << std::endl;
110 fs <<
" * \t@param[out] data : " << name <<
" to load or save" << std::endl;
111 fs <<
" * \t@param checker : check caracteristics of the given " << name <<
" (eg: boundaries or size)" << std::endl;
112 fs <<
" * \t@return true on success, false otherwise" << std::endl;
113 fs <<
"*/" << std::endl;
115 if(listTemplate.size() == 0lu){
116 fs <<
"template<>" << std::endl;
121 name = name +
"::" + name;
124 fs <<
"bool phoenix_config_stream<"<<name << mode.
defTemplate<<
">(ConfigNodeIter & iter, "<<name << mode.
defTemplate<<
" & data, const GenericConfigCheck * checker){" << std::endl;
125 fs <<
"\tbool b(true);" << std::endl;
127 fs <<
"\tPString value = iter->getString();" << std::endl;
128 fs <<
"\tif(!fromString(data, value)){" << std::endl;
129 fs <<
"\t\t*iter.getOut() << \"phoenix_config_stream<"<<name << mode.
defTemplate<<
"> : cannot load enum '"<<name<<
"' with value '\"<<value<<\"'\" << std::endl;" << std::endl;
130 fs <<
"\t\tb = false;" << std::endl;
131 fs <<
"\t}" << std::endl;
134 for(PVecClassAttribute::const_iterator it(vecAttr.begin()); it != vecAttr.end(); ++it){
136 fs <<
"\tb &= phoenix_config_stream<"<<it->getType()<<
">(iter, data.get"<<it->getName().firstToUpper()<<
"(), \""<<it->getName().toSnakeCase()<<
"\", checker);" << std::endl;
139 fs <<
"\treturn b;" << std::endl;
140 fs <<
"}" << std::endl << std::endl;
std::vector< PClassAttribute > PVecClassAttribute
virtual ~CppTraitConfigStream()
Desctructor of CppTraitConfigStream.
virtual void protectedMethodDeclaration(std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
Declaration of protected methods.
virtual void publicMethodDeclaration(std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
Declaration of public methods.
virtual void protectedMethodImplementation(std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
Implementation of protected methods.
CppTraitConfigStream()
Consctructor of CppTraitConfigStream.
virtual void headerExtraInclude(std::ofstream &fs, const GeneratorMode &mode) const
Add extra include on the header.
virtual void classExtraFunctionImplementation(std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
Implementation of extra functions.
virtual void publicMethodImplementation(std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
Implementation of public methods.
virtual void privateMethodImplementation(std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
Implementation of private methods.
virtual void privateMethodDeclaration(std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
Declaration of private methods.
virtual void classExtraFunctionDeclaration(std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
Declaration of extra functions.
Class to describe a basic class.
const std::vector< PClassAttribute > & getListAttribute() const
Returns the list of attributes of the class.
const PVecString & getListTemplate() const
Returns the list of the template of the class.
const PString & getName() const
Returns the class name.
bool getIsEnum() const
Say if the current PClassConfig is an enum.
PString defTemplate
Template definition for the class header.
PString templateDeclaration
Template declaration of the method implementation.
bool enableConfigStream
True to enable config stream interface generator.