51 Init(cl, callfunc, offset);
64 Init(cl, method, params);
77 Init(function, params);
157 for(
int i=strlen(function); i>=0; --i) {
158 switch(function[i]) {
159 case '<': ++nested;
break;
160 case '>':
if (nested==0) {
Error(
"TMethodCall R__FindScope",
"%s is not well formed function name",function);
return nullptr; }
164 if (i>1 && function[i-1]==
':') {
169 if (!cl)
gCling->ClassInfo_Init(cinfo, scope);
193 MethodInfo_t* info =
gCling->CallFunc_FactoryMethod(function);
227 if (!function)
return;
235 fClass =
m ?
m->GetClass() :
nullptr;
261 ClassInfo_t *cinfo =
gCling->ClassInfo_Factory();
268 gCling->ClassInfo_Delete(cinfo);
283 ClassInfo_t *cinfo =
gCling->ClassInfo_Factory();
286 gCling->ClassInfo_Delete(cinfo);
298 const ClassInfo_t *cinfo,
310 fParams = params ? params :
"";
315 ClassInfo_t *scope =
nullptr;
317 else scope = (ClassInfo_t*)cinfo;
322 if (params && params[0]) {
323 gCling->CallFunc_SetFunc(
fFunc, scope, (
char *)methodname, (
char *)params, objectIsConst, &
fOffset);
328 gCling->CallFunc_SetFuncProto(
fFunc, scope, (
char *)methodname,
"", objectIsConst, &
fOffset, mode);
343 ClassInfo_t *cinfo =
gCling->ClassInfo_Factory();
350 gCling->ClassInfo_Delete(cinfo);
365 ClassInfo_t *cinfo =
gCling->ClassInfo_Factory();
368 gCling->ClassInfo_Delete(cinfo);
424 void *address =
nullptr;
427 Error(
"Execute",
"TMethodCall can no longer be use to call the operator delete and the destructor at the same time");
442 void *address =
nullptr;
456 void *address =
nullptr;
473 void *address =
nullptr;
487 void *address =
nullptr;
490 retDouble =
gCling->CallFunc_ExecDouble(
fFunc,address);
503 void *address =
nullptr;
506 retDouble =
gCling->CallFunc_ExecDouble(
fFunc,address);
517 void *address =
nullptr;
520 *retText =(
char*) (
gCling->CallFunc_ExecInt(
fFunc,address));
534 void *address =
nullptr;
537 *retText =(
char*)(
gCling->CallFunc_ExecInt(
fFunc,address));
555 gCling->CallFunc_ExecWithArgsAndReturn(
fFunc,objAddress,args,nargs,
ret);
568 if (func ==
nullptr) {
570 Error(
"ReturnType",
"Unknown method");
int Int_t
Signed integer 4 bytes (int).
long Longptr_t
Integer large enough to hold a pointer (platform-dependent).
int Ssiz_t
String size (currently int).
unsigned int UInt_t
Unsigned integer 4 bytes (unsigned int).
long Long_t
Signed long integer 4 bytes (long). Size depends on architecture.
bool Bool_t
Boolean (0=false, 1=true) (bool).
double Double_t
Double 8 bytes.
long long Long64_t
Portable signed long integer 8 bytes.
unsigned long long ULong64_t
Portable unsigned long integer 8 bytes.
float Float_t
Float 4 bytes (float).
Error("WriteTObject","The current directory (%s) is not associated with a file. The object (%s) has not been written.", GetName(), objname)
externTInterpreter * gCling
externTVirtualMutex * gInterpreterMutex
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.
#define R__LOCKGUARD(mutex)
TClass instances represent classes, structs and namespaces in the ROOT type system.
ClassInfo_t * GetClassInfo() const
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.
Global functions class (global functions are obtained from CINT).
EReturnType ReturnType()
Returns the return type of the method.
TMethodCall()
Default TMethodCall ctor.
TMethodCall & operator=(const TMethodCall &rhs)
Assignment operator.
~TMethodCall()
TMethodCall dtor.
void ResetParam()
Reset parameter list. To be used before the first call the SetParam().
TObject * Clone(const char *newname="") const override
Return an exact copy of this object.
static const EReturnType kOther
TFunction * GetMethod()
Returns the TMethod describing the method to be executed.
static const EReturnType kNone
void Init(const TFunction *func)
Initialize the method invocation environment based on the TFunction object.
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.
TInterpreter::EReturnType EReturnType
Bool_t IsValid() const
Return true if the method call has been properly initialized and is usable.
void InitWithPrototype(TClass *cl, const char *method, const char *proto, Bool_t objectIsConst=kFALSE, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch)
Initialize the method invocation environment.
void SetParam(Long_t l)
Add a long method parameter.
void SetParamPtrs(void *paramArr, Int_t nparam=-1)
Set pointers to parameters.
Each ROOT class (see TClass) has a linked list of methods.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
TObject()
TObject constructor.