CMS 3D CMS Logo

FunctionWithDict.h
Go to the documentation of this file.
1 #ifndef FWCore_Utilities_FunctionWithDict_h
2 #define FWCore_Utilities_FunctionWithDict_h
3 
4 /*----------------------------------------------------------------------
5 
6 FunctionWithDict: A holder for a class member function
7 
8 ----------------------------------------------------------------------*/
9 
11 
12 #include "TMethod.h"
13 #include "TMethodArg.h"
14 #include "TInterpreter.h"
15 
16 #include <cassert>
17 #include <cstdlib>
18 #include <cstdio>
19 #include <string>
20 #include <vector>
21 
22 namespace edm {
23 
24  class ObjectWithDict;
25  class TypeWithDict;
26 
28  private:
29  TMethod* function_;
30  TInterpreter::CallFuncIFacePtr_t funcptr_;
31 
32  public:
34  explicit FunctionWithDict(TMethod*);
35  explicit operator bool() const;
36  std::string name() const;
37  std::string typeName() const;
39  bool isConst() const;
40  bool isConstructor() const;
41  bool isDestructor() const;
42  bool isOperator() const;
43  bool isPublic() const;
44  bool isStatic() const;
46  size_t functionParameterSize(bool required = false) const;
47  size_t size() const;
48  void invoke(ObjectWithDict const& obj,
49  ObjectWithDict* ret = nullptr,
50  std::vector<void*> const& values = std::vector<void*>()) const;
51  void invoke(ObjectWithDict* ret = nullptr, std::vector<void*> const& values = std::vector<void*>()) const;
54  };
55 
56 } // namespace edm
57 
58 #endif // FWCore_Utilities_FunctionWithDict_h
bool isConstructor() const
TypeWithDict declaringType() const
IterWithDict< TMethodArg > end() const
std::string name() const
IterWithDict< TMethodArg > begin() const
std::string typeName() const
void invoke(ObjectWithDict const &obj, ObjectWithDict *ret=nullptr, std::vector< void * > const &values=std::vector< void * >()) const
Call a member function.
TypeWithDict finalReturnType() const
size_t functionParameterSize(bool required=false) const
HLT enums.
TInterpreter::CallFuncIFacePtr_t funcptr_
bool isDestructor() const