PhoenixGenerator  2.0.4
Set of tools to generate code
Loading...
Searching...
No Matches
WrapperTraitTypeStream.cpp
Go to the documentation of this file.
1
2/***************************************
3 Auteur : Pierre Aubert
4 Mail : pierre.aubert@lapp.in2p3.fr
5 Licence : CeCILL-C
6****************************************/
7
9
14
17
19
22void WrapperTraitTypeStream::headerExtraInclude(std::ofstream & fs, const GeneratorMode & mode) const{
23 if(!mode.enableTypeStream){return;}
24 fs << "#include \"phoenix_type_stream.h\"" << std::endl;
25}
26
28
32void WrapperTraitTypeStream::classMethodDeclaration(std::ofstream & fs, const PClassConfig & classConfig, const GeneratorMode & mode) const{
33 if(!mode.enableTypeStream){return;}
34 PString className(wrapper_getClassName(classConfig));
35 fs << "PyObject * "+className+"_getTypeName(PyObject *self, PyObject *args);\n\n";
36}
37
39
43void WrapperTraitTypeStream::classMethodImplementation(std::ofstream & fs, const PClassConfig & classConfig, const GeneratorMode & mode) const{
44 if(!mode.enableTypeStream){return;}
45 PString className(wrapper_getClassName(classConfig));
46 fs << "///Get the type name of "<<className<<" for TypeStream compatibility\n";
47 fs << "/**\t@return type name of "<<className<<"\n";
48 fs << "*/\n";
49 fs << "PyObject * "<<className<<"_getTypeName(PyObject *self, PyObject *args){\n";
50 fs << "\tstd::string name(\""<<classConfig.getName()<<"\");\n";
51 fs << "\treturn Py_BuildValue(\"s\", name.c_str());\n";
52 fs << "}\n\n";
53}
54
56
60void WrapperTraitTypeStream::registerClassMember(std::ofstream & fs, const PClassConfig & classConfig, const GeneratorMode & mode) const{
61 if(!mode.enableTypeStream){return;}
62
63}
64
66
70void WrapperTraitTypeStream::registerClassGetterSetter(std::ofstream & fs, const PClassConfig & classConfig, const GeneratorMode & mode) const{
71 if(!mode.enableTypeStream){return;}
72
73}
74
76
80void WrapperTraitTypeStream::registerClassMethod(std::ofstream & fs, const PClassConfig & classConfig, const GeneratorMode & mode) const{
81 if(!mode.enableTypeStream){return;}
82 PString className(wrapper_getClassName(classConfig));
83 fs << "\t{\"getTypeName\", (PyCFunction)"<<className<<"_getTypeName, METH_NOARGS | METH_STATIC, \"Doc : Get the type name of "<<className<<" for TypeStream compatibility\"},\n";
84}
85
87
91void WrapperTraitTypeStream::testFunction(std::ofstream & fs, const PClassConfig & classConfig, const GeneratorMode & mode) const{
92 if(!mode.enableTypeStream){return;}
93 PString className(classConfig.getName());
94 fs << "#Unit Test for TypeStream of the " + className + "\n";
95 fs << "def test_typestream_"+className+"():\n";
96 fs << "\tassert "+className+".getTypeName() == \"" + className + "\"\n\n\n";
97}
98
100
104void WrapperTraitTypeStream::testCallFunction(std::ofstream & fs, const PClassConfig & classConfig, const GeneratorMode & mode) const{
105 if(!mode.enableTypeStream){return;}
106 PString className(classConfig.getName());
107 fs << "\ttest_typestream_"+className+"():\n";
108}
109
111
114void WrapperTraitTypeStream::setupAddDependency(std::ofstream & fs, const GeneratorMode & mode) const{
115 if(!mode.enableTypeStream){return;}
116 fs << "addWrapperDependency(listIncludeDir, listLibDir, listLib, \"phoenixtypestream-config\", [\"phoenix_type_stream\"])" << std::endl;
117}
118
119
120
Class to describe a basic class.
const PString & getName() const
Returns the class name.
virtual void headerExtraInclude(std::ofstream &fs, const GeneratorMode &mode) const
Add extra include on the header.
virtual void registerClassMethod(std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
Register class method.
virtual void classMethodImplementation(std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
Implementation of class method.
virtual void testFunction(std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
Implementation of test function.
virtual void setupAddDependency(std::ofstream &fs, const GeneratorMode &mode) const
Add dependency in the setup.py.
virtual void testCallFunction(std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
Call of the test function.
virtual void classMethodDeclaration(std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
Declaration of class method.
virtual void registerClassGetterSetter(std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
Register class getter and setter.
virtual ~WrapperTraitTypeStream()
Desctructor of WrapperTraitTypeStream.
WrapperTraitTypeStream()
Consctructor of WrapperTraitTypeStream.
virtual void registerClassMember(std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
Register class member.
All the genertor modes.
bool enableTypeStream
True to enable type stream interface generator.
PString wrapper_getClassName(const PClassConfig &classConfig)
Get the corresponding wrapper class name.