24 fs <<
"#include \"phoenix_check_stream.h\"" << std::endl;
90 PString name(classConfig.
getName());
93 fs <<
"PHOENIX_CHECK_STREAM_ENUM("<<name<<
"::"<<name<<
")" << std::endl << std::endl;
96 if(listTemplate.size() != 0lu){
97 fs <<
"///@brief Generic "<<name<<
" check function" << std::endl;
99 fs <<
"struct CheckStream<"<<name << mode.
defTemplate<<
">{" << std::endl;
100 fs <<
"\tstatic bool check_stream(const std::string & fieldDescription, const "<<name << mode.
defTemplate<<
" & data, const "<<name << mode.
defTemplate<<
" & reference, std::ostream & out);" << std::endl;
101 fs <<
"\t\tbool b(true);" << std::endl;
103 for(PVecClassAttribute::const_iterator it(vecAttr.begin()); it != vecAttr.end(); ++it){
104 fs <<
"\t\tb &= CheckStream<"<<it->getType()<<
">::check_stream(fieldDescription + \"\\n- "<<name<<
"::"<<it->getName()<<
"\", data.get"<<it->getName().firstToUpper()<<
"(), reference.get"<<it->getName().firstToUpper()<<
"(), out);" << std::endl;
106 fs <<
"\t\treturn b;" << std::endl;
107 fs <<
"\t}" << std::endl;
108 fs <<
"};" << std::endl;
110 fs <<
"///@brief Generic "<<name<<
" Check function" << std::endl;
111 fs <<
"template<>" << std::endl;
112 fs <<
"struct CheckStream<"<<name<<
">{" << std::endl;
113 fs <<
"\tstatic bool check_stream(const std::string & fieldDescription, const "<<name<<
" & data, const "<<name<<
" & reference, std::ostream & out);" << std::endl;
114 fs <<
"};" << std::endl;
116 fs << std::endl << std::endl;
127 PString name(classConfig.
getName());
129 if(listTemplate.size() == 0lu){
130 fs <<
"///Check Stream for a "<<name<<
"" << std::endl;
131 fs <<
"/**\t@param fieldDescription : description of the field to be checked" << std::endl;
132 fs <<
" * \t@param data : data to be checked" << std::endl;
133 fs <<
" * \t@param reference : reference of the check" << std::endl;
134 fs <<
" * \t@param out : ostream used to collect feed back in case of error (std::cerr or a logger)" << std::endl;
135 fs <<
" * \t@return true on success, false otherwise" << std::endl;
136 fs <<
"*/" << std::endl;
137 fs <<
"bool CheckStream<"<<name<<
">::check_stream(const std::string & fieldDescription, const "<<name<<
" & data, const "<<name<<
" & reference, std::ostream & out){" << std::endl;
138 fs <<
"\tbool b(true);" << std::endl;
140 for(PVecClassAttribute::const_iterator it(vecAttr.begin()); it != vecAttr.end(); ++it){
141 fs <<
"\tb &= CheckStream<"<<it->getType()<<
">::check_stream(fieldDescription + \"\\n- "<<name<<
"::"<<it->getName()<<
"\", data.get"<<it->getName().firstToUpper()<<
"(), reference.get"<<it->getName().firstToUpper()<<
"(), out);" << std::endl;
143 fs <<
"\treturn b;" << std::endl;
144 fs <<
"}" << std::endl;
146 fs << std::endl << std::endl;
std::vector< PClassAttribute > PVecClassAttribute
virtual void privateMethodDeclaration(std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
Declaration of private methods.
virtual void privateMethodImplementation(std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
Implementation of private methods.
virtual void publicMethodImplementation(std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
Implementation of public methods.
virtual void publicMethodDeclaration(std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
Declaration of public methods.
virtual void classExtraFunctionDeclaration(std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
Declaration of extra functions.
CppTraitCheckStream()
Consctructor of CppTraitCheckStream.
virtual ~CppTraitCheckStream()
Desctructor of CppTraitCheckStream.
virtual void protectedMethodDeclaration(std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
Declaration of protected methods.
virtual void headerExtraInclude(std::ofstream &fs, const GeneratorMode &mode) const
Add extra include on the header.
virtual void protectedMethodImplementation(std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
Implementation of protected methods.
virtual void classExtraFunctionImplementation(std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
Implementation 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 enableCheckStream
True to enable check stream interface generator.