PhoenixGenerator  2.0.4
Set of tools to generate code
Loading...
Searching...
No Matches
CppTraitDataStream Class Reference

Class generator for setter trait. More...

#include <CppTraitDataStream.h>

+ Inheritance diagram for CppTraitDataStream:
+ Collaboration diagram for CppTraitDataStream:

Public Member Functions

virtual void classExtraFunctionDeclaration (std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
 Declaration of extra functions.
 
virtual void classExtraFunctionImplementation (std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
 Implementation of extra functions.
 
 CppTraitDataStream ()
 Consctructor of CppTraitDataStream.
 
virtual void headerExtraInclude (std::ofstream &fs, const GeneratorMode &mode) const
 Add extra include on the header.
 
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 protectedMethodDeclaration (std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
 Declaration of protected methods.
 
virtual void protectedMethodImplementation (std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
 Implementation of protected methods.
 
virtual void publicMethodDeclaration (std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
 Declaration of public methods.
 
virtual void publicMethodImplementation (std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
 Implementation of public methods.
 
virtual void testCallFunction (std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
 
virtual void testFunction (std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
 
virtual ~CppTraitDataStream ()
 Desctructor of CppTraitDataStream.
 

Detailed Description

Class generator for setter trait.

Definition at line 16 of file CppTraitDataStream.h.

Constructor & Destructor Documentation

◆ CppTraitDataStream()

CppTraitDataStream::CppTraitDataStream ( )

Consctructor of CppTraitDataStream.

Definition at line 11 of file CppTraitDataStream.cpp.

References PAbstractTraitBackend::PAbstractTraitBackend().

+ Here is the call graph for this function:

◆ ~CppTraitDataStream()

CppTraitDataStream::~CppTraitDataStream ( )
virtual

Desctructor of CppTraitDataStream.

Definition at line 16 of file CppTraitDataStream.cpp.

16{}

Member Function Documentation

◆ classExtraFunctionDeclaration()

void CppTraitDataStream::classExtraFunctionDeclaration ( std::ofstream & fs,
const PClassConfig & classConfig,
const GeneratorMode & mode ) const
virtual

Declaration of extra functions.

Parameters
[out]fs: file to be completed
classConfig: PClassConfig to be used
mode: mode of the generator

Reimplemented from PAbstractTraitBackend.

Definition at line 104 of file CppTraitDataStream.cpp.

104 {
105 if(!mode.enableDataStream){return;}
106 PString name(classConfig.getName());
107 if(classConfig.getIsEnum()){
108 fs << "PHOENIX_DATA_STREAM_ENUM("<<name<<"::"<<name<<")" << std::endl << std::endl;
109 return;
110 }
111 fs << "///@brief Generic "<<name<<" serialisation/deserialisation, load/save and size function for PhoenixDataStream" << std::endl;
112 fs << "template<typename Stream, DataStreamMode::DataStreamMode Mode>" << std::endl;
113 fs << "struct DataStream<Stream, Mode, "<<name<<">{" << std::endl;
114 fs << "\t///Generic function to load/save/serialise/deserialise "<<name << std::endl;
115 fs << "\t/**\t@param[out] ds : stream to be used" << std::endl;
116 fs << "\t * \t@param data : "<<name<<" to be used" << std::endl;
117 fs << "\t * \t@return true on success, false otherwise" << std::endl;
118 fs << "\t*/" << std::endl;
119 fs << "\tstatic bool data_stream(Stream & ds, "<<name<<" & data){" << std::endl;
120 fs << "\t\treturn data.readWriteStream<Stream, Mode>(ds);" << std::endl;
121 fs << "\t}" << std::endl;
122 fs << "};" << std::endl << std::endl;
123}
const PString & getName() const
Returns the class name.
bool getIsEnum() const
Say if the current PClassConfig is an enum.
bool enableDataStream
True to enable data stream interface generator.

References GeneratorMode::enableDataStream, PClassConfig::getIsEnum(), and PClassConfig::getName().

+ Here is the call graph for this function:

◆ classExtraFunctionImplementation()

void CppTraitDataStream::classExtraFunctionImplementation ( std::ofstream & fs,
const PClassConfig & classConfig,
const GeneratorMode & mode ) const
virtual

Implementation of extra functions.

Parameters
[out]fs: file to be completed
classConfig: PClassConfig to be used
mode: mode of the generator

Reimplemented from PAbstractTraitBackend.

Definition at line 130 of file CppTraitDataStream.cpp.

130 {
131 if(!mode.enableDataStream){return;}
132
133}

References GeneratorMode::enableDataStream.

◆ headerExtraInclude()

void CppTraitDataStream::headerExtraInclude ( std::ofstream & fs,
const GeneratorMode & mode ) const
virtual

Add extra include on the header.

Parameters
[out]fs: file to be completed
mode: mode of the generator

Reimplemented from PAbstractTraitBackend.

Definition at line 22 of file CppTraitDataStream.cpp.

22 {
23 if(!mode.enableDataStream){return;}
24 fs << "#include \"phoenix_data_stream.h\"" << std::endl;
25}

References GeneratorMode::enableDataStream.

◆ privateMethodDeclaration()

void CppTraitDataStream::privateMethodDeclaration ( std::ofstream & fs,
const PClassConfig & classConfig,
const GeneratorMode & mode ) const
virtual

Declaration of private methods.

Parameters
[out]fs: file to be completed
classConfig: PClassConfig to be used
mode: mode of the generator

Reimplemented from PAbstractTraitBackend.

Definition at line 86 of file CppTraitDataStream.cpp.

86 {
87
88}

◆ privateMethodImplementation()

void CppTraitDataStream::privateMethodImplementation ( std::ofstream & fs,
const PClassConfig & classConfig,
const GeneratorMode & mode ) const
virtual

Implementation of private methods.

Parameters
[out]fs: file to be completed
classConfig: PClassConfig to be used
mode: mode of the generator

Reimplemented from PAbstractTraitBackend.

Definition at line 95 of file CppTraitDataStream.cpp.

95 {
96
97}

◆ protectedMethodDeclaration()

void CppTraitDataStream::protectedMethodDeclaration ( std::ofstream & fs,
const PClassConfig & classConfig,
const GeneratorMode & mode ) const
virtual

Declaration of protected methods.

Parameters
[out]fs: file to be completed
classConfig: PClassConfig to be used
mode: mode of the generator

Reimplemented from PAbstractTraitBackend.

Definition at line 68 of file CppTraitDataStream.cpp.

68 {
69
70}

◆ protectedMethodImplementation()

void CppTraitDataStream::protectedMethodImplementation ( std::ofstream & fs,
const PClassConfig & classConfig,
const GeneratorMode & mode ) const
virtual

Implementation of protected methods.

Parameters
[out]fs: file to be completed
classConfig: PClassConfig to be used
mode: mode of the generator

Reimplemented from PAbstractTraitBackend.

Definition at line 77 of file CppTraitDataStream.cpp.

77 {
78
79}

◆ publicMethodDeclaration()

void CppTraitDataStream::publicMethodDeclaration ( std::ofstream & fs,
const PClassConfig & classConfig,
const GeneratorMode & mode ) const
virtual

Declaration of public methods.

Parameters
[out]fs: file to be completed
classConfig: PClassConfig to be used
mode: mode of the generator

Reimplemented from PAbstractTraitBackend.

Definition at line 32 of file CppTraitDataStream.cpp.

32 {
33 if(!mode.enableDataStream || classConfig.getIsEnum()){return;}
34 PString name(classConfig.getName());
35 fs << std::endl;
36 fs << "\t\t///Load the current "<<name<<" with a stream" << std::endl;
37 fs << "\t\t/** @param[out] ds : stream to be used" << std::endl;
38 fs << "\t\t * @return true on success, false otherwise" << std::endl;
39 fs << "\t\t*/" << std::endl;
40 fs << "\t\ttemplate<typename Stream, DataStreamMode::DataStreamMode Mode>" << std::endl;
41 fs << "\t\tbool readWriteStream(Stream & ds){" << std::endl;
42 fs << "\t\t\tbool b(true);" << std::endl;
43
44 const PVecClassAttribute & vecAttr(classConfig.getListAttribute());
45 for(PVecClassAttribute::const_iterator it(vecAttr.begin()); it != vecAttr.end(); ++it){
46 fs << "\t\t\tb &= DataStream<Stream, Mode, "<<it->getType()<<" >::data_stream(ds, p_" << it->getName() << ");" << std::endl;
47 }
48
49 fs << "\t\t\treturn b;" << std::endl;
50 fs << "\t\t}" << std::endl << std::endl;
51}
std::vector< PClassAttribute > PVecClassAttribute
Definition PDataConfig.h:13
const std::vector< PClassAttribute > & getListAttribute() const
Returns the list of attributes of the class.

References GeneratorMode::enableDataStream, PClassConfig::getIsEnum(), PClassConfig::getListAttribute(), and PClassConfig::getName().

+ Here is the call graph for this function:

◆ publicMethodImplementation()

void CppTraitDataStream::publicMethodImplementation ( std::ofstream & fs,
const PClassConfig & classConfig,
const GeneratorMode & mode ) const
virtual

Implementation of public methods.

Parameters
[out]fs: file to be completed
classConfig: PClassConfig to be used
mode: mode of the generator

Reimplemented from PAbstractTraitBackend.

Definition at line 58 of file CppTraitDataStream.cpp.

58 {
59 if(!mode.enableDataStream){return;}
60
61}

References GeneratorMode::enableDataStream.

◆ testCallFunction()

virtual void PAbstractTraitBackend::testCallFunction ( std::ofstream & fs,
const PClassConfig & classConfig,
const GeneratorMode & mode ) const
inlinevirtualinherited

Reimplemented in CppTraitCopy, CppTraitEmpty, CppTraitFromString, and CppTraitTypeStream.

Definition at line 37 of file PAbstractTraitBackend.h.

37{}

◆ testFunction()

virtual void PAbstractTraitBackend::testFunction ( std::ofstream & fs,
const PClassConfig & classConfig,
const GeneratorMode & mode ) const
inlinevirtualinherited

Reimplemented in CppTraitCopy, CppTraitEmpty, CppTraitFromString, and CppTraitTypeStream.

Definition at line 36 of file PAbstractTraitBackend.h.

36{}

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