Library: CodeGeneration
Package: CodeGeneration
Header: Poco/CodeGeneration/MethodPropertyFilter.h
A MethodPropertyFilter filters methods according to properties. It works as a decorator, checking if a property is set at the method. If not it will simply ignore all method calls related to that method. It will not filter variables, includes, only methods excl. constructor and destructor are checked.
Direct Base Classes: CodeGenerator
All Base Classes: CodeGenerator
Member Functions: addFwdDecl, addIncludeFile, addSystemIncludeFile, copyright, endFile, includes, libraryName, methodEnd, methodStart, nameSpace, structEnd, structStart, systemIncludes, usePocoIncludeStyle, variable, variablesEnd, variablesStart, writeDefaultHeader, writeFwdDecls, writeImplementation, writeInclude, writeIncludes, writeMethodImplementation, writeNameSpaceBegin, writeNameSpaceEnd, writeSystemInclude, writeTypeDef
Inherited Functions: addFwdDecl, addIncludeFile, addSrcIncludeFile, addSystemIncludeFile, copyright, endFile, includes, libraryName, methodEnd, methodStart, nameSpace, structEnd, structStart, systemIncludes, usePocoIncludeStyle, variable, variablesEnd, variablesStart, writeDefaultHeader, writeFwdDecls, writeImplementation, writeInclude, writeIncludes, writeMethodImplementation, writeNameSpaceBegin, writeNameSpaceEnd, writeSystemInclude, writeTypeDef
MethodPropertyFilter(
CodeGenerator * pGen,
const CodeGenerator::Properties & properties
);
Creates a MethodPropertyFilter decorating another CodeGenerator. Takes ownership of the pointer which must not be 0. properties contains the properties that each method must match to be generated.
MethodPropertyFilter(
CodeGenerator * pGen,
const std::string & prop
);
Creates a MethodPropertyFilter decorating another CodeGenerator. Takes ownership of the pointer which must not be 0. Convenience constructor which takes exactly one property.
Destroys the MethodPropertyFilter.
void addFwdDecl(
const std::string & inclFile,
const std::string & className,
const std::string namespacePrefix
);
Adds a fwd decl.
void addIncludeFile(
const std::string & incFile
);
Adds an include file to the CodeGenerator. A call to this method is only meaningful until structStart was not called. Duplicate includes will be ignored. Contains the include path only, e.g. "include/MyClass.h" (without enclosing ")
void addSystemIncludeFile(
const std::string & incFile
);
Adds a system include file.
const std::string & copyright() const;
void endFile();
const CodeGenerator::IncludeSet & includes() const;
const std::string & libraryName() const;
void methodEnd(
const Poco::CppParser::Function * pFunc,
const CodeGenerator::Properties & properties
);
void methodStart(
const Poco::CppParser::Function * pFunc,
const CodeGenerator::Properties & properties
);
const std::string & nameSpace() const;
void structEnd();
void structStart(
const Poco::CppParser::Struct * pStruct,
const CodeGenerator::Properties & properties
);
const CodeGenerator::IncludeSet & systemIncludes() const;
bool usePocoIncludeStyle() const;
void variable(
const Poco::CppParser::Variable * pVar
);
void variablesEnd();
void variablesStart();
void writeDefaultHeader(
const Poco::CppParser::Struct * pStruct,
const std::string & className,
const std::string & libraryName,
const std::string & package
);
Writes the default header, e.g. copyright notice, no include namespace open or anything else is written This is always the first method that is called!
void writeFwdDecls(
const CodeGenerator::FwdDecls & decl
);
void writeImplementation(
const std::string & code
);
void writeInclude(
const std::string & include,
bool toHeader
);
void writeIncludes();
Convenience Functions which calls for all include files writeInclude, also writes fwdDecls.
void writeMethodImplementation(
const std::string & code
);
void writeNameSpaceBegin(
const std::string & ns
);
void writeNameSpaceEnd(
const std::string & ns
);
void writeSystemInclude(
const std::string & include
);
void writeTypeDef(
const Poco::CppParser::TypeDef * pType
);