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);
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");
bool Bool_t
Boolean (0=false, 1=true) (bool)
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)
long Long_t
Signed long integer 4 bytes (long). Size depends on architecture.
unsigned int UInt_t
Unsigned integer 4 bytes (unsigned int)
float Float_t
Float 4 bytes (float)
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.
void Error(const char *location, const char *msgfmt,...)
Use this function in case an error occurred.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h offset
Option_t Option_t TPoint TPoint const char mode
R__EXTERN TVirtualMutex * gInterpreterMutex
R__EXTERN TInterpreter * gCling
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).
TObject * Clone(const char *newname="") const override
Clone method.
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.