49 Init(cl, callfunc, offset);
62 Init(cl, method, params);
75 Init(
function, params);
94 fFunc(orig.fFunc ?
gCling->CallFunc_FactoryCopy(orig.fFunc) : 0),
96 fMethod(orig.fMethod), fParams(orig.fParams), fProto(orig.fProto),
97 fDtorOnly(orig.fDtorOnly), fRetType(orig.fRetType)
155 for(
int i=strlen(
function); i>=0; --i) {
156 switch(
function[i]) {
157 case '<': ++nested;
break;
158 case '>':
if (nested==0) {
Error(
"TMethodCall R__FindScope",
"%s is not well formed function name",
function);
return 0; }
162 if (i>1 &&
function[i-1]==
':') {
225 if (!
function)
return;
296 const ClassInfo_t *cinfo,
308 fParams = params ? params :
"";
309 fProto = proto ? proto :
"";
313 ClassInfo_t *scope = 0;
315 else scope = (ClassInfo_t*)cinfo;
320 if (params && params[0]) {
322 }
else if (proto && proto[0]) {
425 Error(
"Execute",
"TMethodCall can no longer be use to call the operator delete and the destructor at the same time");
568 Error(
"ReturnType",
"Unknown method");
virtual void CallFunc_SetFuncProto(CallFunc_t *, ClassInfo_t *, const char *, const char *, Long_t *, ROOT::EFunctionMatchMode=ROOT::kConversionMatch) const
Ssiz_t Last(char c) const
Find last occurrence of a character c.
virtual void CallFunc_SetArgs(CallFunc_t *, const char *) const
virtual void ClassInfo_Delete(ClassInfo_t *) const
static const EReturnType kOther
R__EXTERN TVirtualMutex * gInterpreterMutex
virtual void CallFunc_SetArgArray(CallFunc_t *, Long_t *, Int_t) const
ClassImp(TMethodCall) TMethodCall
Default TMethodCall ctor.
virtual Double_t CallFunc_ExecDouble(CallFunc_t *, void *) const
virtual void CallFunc_Exec(CallFunc_t *, void *) const
virtual void CallFunc_Delete(CallFunc_t *) const
static TClass * R__FindScope(const char *function, UInt_t &pos, ClassInfo_t *cinfo)
Helper function to find the scope associated with a qualified function name.
void SetParamPtrs(void *paramArr, Int_t nparam=-1)
ParamArr is an array containing the function argument values.
const char * Data() const
virtual void CallFunc_SetArg(CallFunc_t *, Long_t) const =0
virtual void ClassInfo_Init(ClassInfo_t *, const char *) const
UChar_t mod R__LOCKGUARD2(gSrvAuthenticateMutex)
virtual void CallFunc_Init(CallFunc_t *) const
void Init(const TFunction *func)
Initialize the method invocation environment based on the TFunction object.
virtual ClassInfo_t * ClassInfo_Factory(Bool_t=kTRUE) const =0
~TMethodCall()
TMethodCall dtor.
TClass * fClass
pointer to the foreign object
Method or function calling interface.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
virtual EReturnType MethodCallReturnType(TFunction *func) const =0
void Error(const char *location, const char *msgfmt,...)
virtual Long_t CallFunc_ExecInt(CallFunc_t *, void *) const
void function(const char *name_, T fun, const char *docstring=0)
virtual CallFunc_t * CallFunc_FactoryCopy(CallFunc_t *) const
virtual void SetTempLevel(int) const
ClassInfo_t * GetClassInfo() const
virtual const char * GetName() const
Returns name of object.
The ROOT global object gROOT contains a list of all defined classes.
virtual void CallFunc_ResetArg(CallFunc_t *) const
void InitWithPrototype(TClass *cl, const char *method, const char *proto, Bool_t objectIsConst=kFALSE, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch)
Initialize the method invocation environment.
TString & Remove(Ssiz_t pos)
TClass * GetClass() const
TFunction * GetMethod()
Returns the TMethod describing the method to be executed.
virtual CallFunc_t * CallFunc_Factory() const
void ResetParam()
Reset parameter list. To be used before the first call the SetParam().
unsigned long long ULong64_t
virtual MethodInfo_t * CallFunc_FactoryMethod(CallFunc_t *) const
double func(double *x, double *p)
TMethod * GetMethod(const char *method, const char *params, Bool_t objectIsConst=kFALSE)
Find the best method (if there is one) matching the parameters.
TObject * Clone(const char *newname="") const
Return an exact copy of this object.
static TClass * GetClass(const char *name, Bool_t load=kTRUE, Bool_t silent=kFALSE)
Static method returning pointer to TClass of the specified class name.
Mother of all ROOT objects.
Global functions class (global functions are obtained from CINT).
Each ROOT class (see TClass) has a linked list of methods.
void SetParam(Long_t l)
Add a long method parameter.
void InitImplementation(const char *methodname, const char *params, const char *proto, Bool_t objectIsConst, TClass *cl, const ClassInfo_t *cinfo, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch)
This function implements Init and InitWithPrototype.
R__EXTERN TInterpreter * gCling
static const EReturnType kNone
virtual void CallFunc_ExecWithArgsAndReturn(CallFunc_t *, void *, const void *[]=0, int=0, void *=0) const
TMethodCall & operator=(const TMethodCall &rhs)
Assignment operator.
TMethod * GetMethodWithPrototype(const char *method, const char *proto, Bool_t objectIsConst=kFALSE, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch)
Find the method with a given prototype.
virtual void CallFunc_SetFunc(CallFunc_t *, ClassInfo_t *, const char *, const char *, bool, Long_t *) const
Bool_t IsValid() const
Return true if the method call has been properly initialized and is usable.
EReturnType ReturnType()
Returns the return type of the method.
const char * GetSignature()
Return signature of function.
virtual Bool_t CallFunc_IsValid(CallFunc_t *) const