Emulation of the CINT CallFunc class.
The CINT C++ interpreter provides an interface for calling functions through the generated wrappers in dictionaries with the CallFunc class. This class provides the same functionality, using an interface as close as possible to CallFunc but the function metadata and calling service comes from the Cling C++ interpreter and the Clang C++ compiler, not CINT.
Definition at line 60 of file TClingCallFunc.h.
|
| TClingCallFunc (cling::Interpreter *interp) |
|
| TClingCallFunc (const TClingCallFunc &rhs) |
|
| TClingCallFunc (const TClingMethodInfo &minfo) |
|
| ~TClingCallFunc ()=default |
|
void | Exec (void *address, TInterpreterValue *interpVal=0) |
|
void * | ExecDefaultConstructor (const TClingClassInfo *info, ROOT::TMetaUtils::EIOCtorCategory kind, const std::string &type_name, void *address=nullptr, unsigned long nary=0UL) |
|
void | ExecDestructor (const TClingClassInfo *info, void *address=nullptr, unsigned long nary=0UL, bool withFree=true) |
|
double | ExecDouble (void *address) |
|
Longptr_t | ExecInt (void *address) |
|
long long | ExecInt64 (void *address) |
|
void | ExecWithArgsAndReturn (void *address, const void *args[]=0, int nargs=0, void *ret=0) |
|
void | ExecWithReturn (void *address, void *ret=nullptr) |
|
TClingMethodInfo * | FactoryMethod () const |
|
int | get_wrapper_code (std::string &wrapper_name, std::string &wrapper) |
|
const clang::FunctionDecl * | GetDecl () |
|
const clang::FunctionDecl * | GetDecl () const |
|
const clang::DeclContext * | GetDeclContext () const |
|
const clang::Decl * | GetFunctionOrShadowDecl () const |
|
TInterpreter::CallFuncIFacePtr_t | IFacePtr () |
|
void | IgnoreExtraArgs (bool ignore) |
|
void | Init () |
|
void | Init (const TClingMethodInfo &) |
|
void | Init (std::unique_ptr< TClingMethodInfo >) |
|
void * | InterfaceMethod () |
|
void | Invoke (cling::Value *result=0) const |
|
bool | IsValid () const |
|
TClingCallFunc & | operator= (const TClingCallFunc &rhs)=delete |
|
void | ResetArg () |
|
template<typename T , std::enable_if_t< std::is_fundamental< T >::value, bool > = true> |
void | SetArg (T arg) |
|
void | SetArgArray (Longptr_t *argArr, int narg) |
|
void | SetArgs (const char *args) |
|
void | SetFunc (const TClingClassInfo *info, const char *method, const char *arglist, bool objectIsConst, Longptr_t *poffset) |
|
void | SetFunc (const TClingClassInfo *info, const char *method, const char *arglist, Longptr_t *poffset) |
|
void | SetFunc (const TClingMethodInfo *info) |
|
void | SetFuncProto (const TClingClassInfo *info, const char *method, const char *proto, bool objectIsConst, Longptr_t *poffset, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch) |
|
void | SetFuncProto (const TClingClassInfo *info, const char *method, const char *proto, Longptr_t *poffset, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch) |
|
void | SetFuncProto (const TClingClassInfo *info, const char *method, const llvm::SmallVectorImpl< clang::QualType > &proto, bool objectIsConst, Longptr_t *poffset, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch) |
|
void | SetFuncProto (const TClingClassInfo *info, const char *method, const llvm::SmallVectorImpl< clang::QualType > &proto, Longptr_t *poffset, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch) |
|
|
size_t | CalculateMinRequiredArguments () |
|
void | collect_type_info (clang::QualType &QT, std::ostringstream &typedefbuf, std::ostringstream &callbuf, std::string &type_name, EReferenceType &refType, bool &isPointer, int indent_level, bool forArgument) |
|
void * | compile_wrapper (const std::string &wrapper_name, const std::string &wrapper, bool withAccessControl=true) |
|
void | EvaluateArgList (const std::string &ArgList) |
|
void | exec (void *address, void *ret) |
|
void | exec_with_valref_return (void *address, cling::Value &ret) |
|
template<typename T > |
T | ExecT (void *address) |
|
size_t | GetMinRequiredArguments () |
|
tcling_callfunc_ctor_Wrapper_t | make_ctor_wrapper (const TClingClassInfo *, ROOT::TMetaUtils::EIOCtorCategory, const std::string &) |
|
tcling_callfunc_dtor_Wrapper_t | make_dtor_wrapper (const TClingClassInfo *info) |
|
void | make_narg_call (const std::string &return_type, const unsigned N, std::ostringstream &typedefbuf, std::ostringstream &callbuf, const std::string &class_name, int indent_level) |
|
void | make_narg_call_with_return (const unsigned N, const std::string &class_name, std::ostringstream &buf, int indent_level) |
|
void | make_narg_ctor (const unsigned N, std::ostringstream &typedefbuf, std::ostringstream &callbuf, const std::string &class_name, int indent_level) |
|
void | make_narg_ctor_with_return (const unsigned N, const std::string &class_name, std::ostringstream &buf, int indent_level) |
|
tcling_callfunc_Wrapper_t | make_wrapper () |
|