|
|
Go to the documentation of this file.
23#ifndef FAUDES_RTIFNCTS_H
24#define FAUDES_RTIFNCTS_H
63 Parameter( const std::string& rName, const std::string& rTypeName,
64 ParamAttr attr=UnDef, bool cret= false);
75 const std::string& Name( void) const;
83 void Name( const std::string& rName);
91 const std::string& Type( void) const;
99 void Type( const std::string& rTypeName);
107 const ParamAttr& Attribute( void) const;
115 void Attribute( const ParamAttr& rAttr);
124 void Attribute( const std::string& rAttrStr);
132 bool CReturn( void) const;
140 void CReturn( bool cret);
156 std::string Str( void) const;
169 bool operator==( const Parameter& rOther) const;
227 using Type::operator=;
228 using Type::operator==;
229 using Type::operator!=;
246 const std::string& Name( void) const;
254 void Name( const std::string& rName);
267 int Size( void) const;
320 bool DoEqual( const Signature& rOther) const;
338 virtual void DoRead( TokenReader& rTr, const std::string& rLabel = "", const Type* pContext=0);
355 virtual void DoWrite( TokenWriter& rTw, const std::string& rLabel= "", const Type* pContext=0) const;
426 using Documentation::operator=;
427 using Documentation::operator==;
428 using Documentation::operator!=;
489 virtual void Clear( void);
495 virtual void ClearVariants( void);
507 const Function* Prototype( void) const;
527 int VariantsSize( void) const;
535 bool ExistsVariant( const std::string& varname) const;
545 int VariantIndex( const std::string& rName) const;
557 const Signature& Variant( const std::string& rName) const;
579 virtual void AppendVariant( const Signature& pVar);
618 virtual void DoRead( TokenReader& rTr, const std::string& rLabel = "", const Type* pContext=0);
649 virtual void DoWrite( TokenWriter& rTw, const std::string& rLabel= "", const Type* pContext=0) const;
672 virtual void Prototype( Function* pFunc);
724 using Type::operator=;
777 int VariantsSize( void) const;
810 void Variant( const std::string& rVariantName);
828 int ParamsSize( void) const;
850 void ParamValue( int n, Type* param);
862 Type* ParamValue( int n) const;
873 void AllocateValues( void);
874 void AllocateValue( int i);
882 void FreeValues( void);
900 bool TypeCheck( int n);
916 bool TypeCheck( void);
952 std::stringstream err;
953 err << "No variant specified";
954 throw Exception( "Function::DoTypeCast()", err.str(), 48);
956 if(n<0 || n >= ParamsSize()) {
957 std::stringstream err;
958 err << "Parameter position out of range";
959 throw Exception( "Function::DoTypeCast()", err.str(), 48);
961 rTypedRef= dynamic_cast<T* >(ParamValue(n));
962 return rTypedRef!=NULL;
979 virtual void DoVariant( int n);
1018 void DoWrite( TokenWriter& rTw, const std::string& rLabel = "", const Type* pContext=0) const;
1047 FD_DRTI( "FunctionDefinition::Construct<" << typeid(T).name() << ">()");
1053 std::string name=rFunctionName;
1054 if(name== "") name= typeid(T).name();
1056 FD_DRTI( "FunctionDefinition::Constructor<" << typeid(T).name() << ">(): done");
1064 FD_DRTI( "FunctionDefinition::FromFile<" << typeid(T).name() << ">()");
1068 td-> Read(rFileName);
1070 FD_DRTI( "FunctionDefinition::FromFile<" << typeid(T).name() << ">(): done");
#define FAUDES_TYPE_DECLARATION(ftype, ctype, cbase)
const std::string & Name(void) const
const Function * Prototype(void) const
static FunctionDefinition * FromFile(const std::string &rFileName)
std::map< std::string, int > mVariantIndexMap
FunctionDefinition(const std::string &name="")
static FunctionDefinition * Constructor(const std::string &rFunctName="")
std::vector< faudes::Signature > mVariants
virtual ~FunctionDefinition()
virtual Function * New() const =0
virtual bool DoTypeCheck(int n)=0
const FunctionDefinition * pFuncDef
bool DoTypeCast(int n, T *&rTypedRef)
std::vector< Type * > mParameterValues
virtual void DoExecute()=0
std::vector< Parameter > mParameters
void Read(const std::string &rFileName, const std::string &rLabel="", const Type *pContext=0)
libFAUDES 2.33k
--- 2025.09.16
--- c++ api documentaion by doxygen
|