Logo ROOT   6.08/07
Reference Guide
TInterpreter.h
Go to the documentation of this file.
1 // @(#)root/meta:$Id$
2 // Author: Fons Rademakers 01/03/96
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 
13 #ifndef ROOT_TInterpreter
14 #define ROOT_TInterpreter
15 
16 //////////////////////////////////////////////////////////////////////////
17 // //
18 // TInterpreter //
19 // //
20 // This class defines an abstract interface to a generic command line //
21 // interpreter. //
22 // //
23 //////////////////////////////////////////////////////////////////////////
24 
25 #ifndef ROOT_TDictionary
26 #include "TDictionary.h"
27 #endif
28 
29 #ifndef ROOT_TVirtualMutex
30 #include "TVirtualMutex.h"
31 #endif
32 
33 #ifndef ROOT_Rtypeinfo
34 #include "Rtypeinfo.h"
35 #endif
36 
37 #include <vector>
38 
39 class TClass;
40 class TEnv;
41 class TFunction;
42 class TInterpreterValue;
43 class TMethod;
44 class TObjArray;
45 class TEnum;
47 
49 
50 class TInterpreter : public TNamed {
51 
52 protected:
53  virtual void Execute(TMethod *method, TObjArray *params, int *error = 0) = 0;
54  virtual Bool_t SetSuspendAutoParsing(Bool_t value) = 0;
55 
56  friend class SuspendAutoParsing;
57 
58 public:
59  enum EErrorCode {
60  kNoError = 0,
63  kFatal = 3,
65  };
66 
68 
70  enum EKind {
74  kDtor
75  };
76 
77  typedef void (*Generic_t)(void*, int, void**, void*);
78  typedef void (*Ctor_t)(void**, void*, unsigned long);
79  typedef void (*Dtor_t)(void*, unsigned long, int);
80 
82  fKind(kUninitialized), fGeneric(0) {}
84  fKind(kGeneric), fGeneric(func) {}
86  fKind(kCtor), fCtor(func) {}
88  fKind(kDtor), fDtor(func) {}
89 
91  union {
92  Generic_t fGeneric;
93  Ctor_t fCtor;
94  Dtor_t fDtor;
95  };
96  };
97 
101  public:
102  SuspendAutoParsing(TInterpreter *where, Bool_t value = kTRUE) : fInterp(where), fPrevious(fInterp->SetSuspendAutoParsing(value)) {}
103  ~SuspendAutoParsing() { fInterp->SetSuspendAutoParsing(fPrevious); }
104  };
105  virtual Bool_t IsAutoParsingSuspended() const = 0;
106 
107  typedef int (*AutoLoadCallBack_t)(const char*);
108  typedef std::vector<std::pair<std::string, int> > FwdDeclArgsToKeepCollection_t;
109 
110  TInterpreter() { } // for Dictionary
111  TInterpreter(const char *name, const char *title = "Generic Interpreter");
112  virtual ~TInterpreter() { }
113 
114  virtual void AddIncludePath(const char *path) = 0;
115  virtual void *SetAutoLoadCallBack(void* /*cb*/) { return 0; }
116  virtual void *GetAutoLoadCallBack() const { return 0; }
117  virtual Int_t AutoLoad(const char *classname, Bool_t knowDictNotLoaded = kFALSE) = 0;
118  virtual Int_t AutoLoad(const std::type_info& typeinfo, Bool_t knowDictNotLoaded = kFALSE) = 0;
119  virtual Int_t AutoParse(const char* cls) = 0;
120  virtual void ClearFileBusy() = 0;
121  virtual void ClearStack() = 0; // Delete existing temporary values
122  virtual Bool_t Declare(const char* code) = 0;
123  virtual void EnableAutoLoading() = 0;
124  virtual void EndOfLineAction() = 0;
125  virtual TClass *GetClass(const std::type_info& typeinfo, Bool_t load) const = 0;
126  virtual Int_t GetExitCode() const = 0;
127  virtual TEnv *GetMapfile() const { return 0; }
128  virtual Int_t GetMore() const = 0;
129  virtual TClass *GenerateTClass(const char *classname, Bool_t emulation, Bool_t silent = kFALSE) = 0;
130  virtual TClass *GenerateTClass(ClassInfo_t *classinfo, Bool_t silent = kFALSE) = 0;
131  virtual Int_t GenerateDictionary(const char *classes, const char *includes = 0, const char *options = 0) = 0;
132  virtual char *GetPrompt() = 0;
133  virtual const char *GetSharedLibs() = 0;
134  virtual const char *GetClassSharedLibs(const char *cls) = 0;
135  virtual const char *GetSharedLibDeps(const char *lib) = 0;
136  virtual const char *GetIncludePath() = 0;
137  virtual const char *GetSTLIncludePath() const { return ""; }
138  virtual TObjArray *GetRootMapFiles() const = 0;
139  virtual void Initialize() = 0;
140  virtual void InspectMembers(TMemberInspector&, const void* obj, const TClass* cl, Bool_t isTransient) = 0;
141  virtual Bool_t IsLoaded(const char *filename) const = 0;
142  virtual Int_t Load(const char *filenam, Bool_t system = kFALSE) = 0;
143  virtual void LoadMacro(const char *filename, EErrorCode *error = 0) = 0;
144  virtual Int_t LoadLibraryMap(const char *rootmapfile = 0) = 0;
145  virtual Int_t RescanLibraryMap() = 0;
146  virtual Int_t ReloadAllSharedLibraryMaps() = 0;
147  virtual Int_t UnloadAllSharedLibraryMaps() = 0;
148  virtual Int_t UnloadLibraryMap(const char *library) = 0;
149  virtual Long_t ProcessLine(const char *line, EErrorCode *error = 0) = 0;
150  virtual Long_t ProcessLineSynch(const char *line, EErrorCode *error = 0) = 0;
151  virtual void PrintIntro() = 0;
152  virtual void RegisterModule(const char* /*modulename*/,
153  const char** /*headers*/,
154  const char** /*includePaths*/,
155  const char* /*payloadCode*/,
156  const char* /*fwdDeclsCode*/,
157  void (* /*triggerFunc*/)(),
158  const FwdDeclArgsToKeepCollection_t& fwdDeclArgsToKeep,
159  const char** classesHeaders,
160  Bool_t lateRegistration = false) = 0;
161  virtual void RegisterTClassUpdate(TClass *oldcl,DictFuncPtr_t dict) = 0;
162  virtual void UnRegisterTClassUpdate(const TClass *oldcl) = 0;
163  virtual Int_t SetClassSharedLibs(const char *cls, const char *libs) = 0;
164  virtual void SetGetline(const char*(*getlineFunc)(const char* prompt),
165  void (*histaddFunc)(const char* line)) = 0;
166  virtual void Reset() = 0;
167  virtual void ResetAll() = 0;
168  virtual void ResetGlobals() = 0;
169  virtual void ResetGlobalVar(void *obj) = 0;
170  virtual void RewindDictionary() = 0;
171  virtual Int_t DeleteGlobal(void *obj) = 0;
172  virtual Int_t DeleteVariable(const char* name) = 0;
173  virtual void SaveContext() = 0;
174  virtual void SaveGlobalsContext() = 0;
175  virtual void UpdateListOfGlobals() = 0;
176  virtual void UpdateListOfGlobalFunctions() = 0;
177  virtual void UpdateListOfTypes() = 0;
178  virtual void SetClassInfo(TClass *cl, Bool_t reload = kFALSE) = 0;
179  virtual Bool_t CheckClassInfo(const char *name, Bool_t autoload, Bool_t isClassOrNamespaceOnly = kFALSE) = 0;
180  virtual Bool_t CheckClassTemplate(const char *name) = 0;
181  virtual Long_t Calc(const char *line, EErrorCode* error = 0) = 0;
182  virtual void CreateListOfBaseClasses(TClass *cl) const = 0;
183  virtual void CreateListOfDataMembers(TClass *cl) const = 0;
184  virtual void CreateListOfMethods(TClass *cl) const = 0;
185  virtual void CreateListOfMethodArgs(TFunction *m) const = 0;
186  virtual void UpdateListOfMethods(TClass *cl) const = 0;
187  virtual TString GetMangledName(TClass *cl, const char *method, const char *params, Bool_t objectIsConst = kFALSE) = 0;
188  virtual TString GetMangledNameWithPrototype(TClass *cl, const char *method, const char *proto, Bool_t objectIsConst = kFALSE, ROOT::EFunctionMatchMode /* mode */ = ROOT::kConversionMatch) = 0;
189  virtual void GetInterpreterTypeName(const char *name, std::string &output, Bool_t full = kFALSE) = 0;
190  virtual void *GetInterfaceMethod(TClass *cl, const char *method, const char *params, Bool_t objectIsConst = kFALSE) = 0;
191  virtual void *GetInterfaceMethodWithPrototype(TClass *cl, const char *method, const char *proto, Bool_t objectIsConst = kFALSE, ROOT::EFunctionMatchMode /* mode */ = ROOT::kConversionMatch) = 0;
192  virtual void Execute(const char *function, const char *params, int *error = 0) = 0;
193  virtual void Execute(TObject *obj, TClass *cl, const char *method, const char *params, int *error = 0) = 0;
194  virtual void Execute(TObject *obj, TClass *cl, TMethod *method, TObjArray *params, int *error = 0) = 0;
195  virtual void ExecuteWithArgsAndReturn(TMethod *method, void* address, const void* args[] = 0, int /*nargs*/ = 0, void* ret= 0) const = 0;
196  virtual Long_t ExecuteMacro(const char *filename, EErrorCode *error = 0) = 0;
197  virtual Bool_t IsErrorMessagesEnabled() const = 0;
198  virtual Bool_t SetErrorMessages(Bool_t enable = kTRUE) = 0;
199  virtual Bool_t IsProcessLineLocked() const = 0;
200  virtual void SetProcessLineLock(Bool_t lock = kTRUE) = 0;
201  virtual const char *TypeName(const char *s) = 0;
202 
203  // All the functions below must be virtual with a dummy implementation
204  // These functions are redefined in TCling.
205  //The dummy implementation avoids an implementation in TGWin32InterpreterProxy
206 
207  // Misc
208  virtual int DisplayClass(FILE * /* fout */,const char * /* name */,int /* base */,int /* start */) const {return 0;}
209  virtual int DisplayIncludePath(FILE * /* fout */) const {return 0;}
210  virtual void *FindSym(const char * /* entry */) const {return 0;}
211  virtual void GenericError(const char * /* error */) const {;}
212  virtual Long_t GetExecByteCode() const {return 0;}
213  virtual Long_t Getgvp() const
214  R__DEPRECATED(6,10, "CINT remnant, not applicable to cling")
215  {return 0;}
216  virtual const char *Getp2f2funcname(void * /* receiver */) const
217  R__DEPRECATED(6,10, "CINT remnant, not applicable to cling")
218  {return 0;}
219  virtual const char *GetTopLevelMacroName() const {return 0;};
220  virtual const char *GetCurrentMacroName() const {return 0;};
221  virtual int GetSecurityError() const{return 0;}
222  virtual int LoadFile(const char * /* path */) const {return 0;}
223  virtual Bool_t LoadText(const char * /* text */) const {return kFALSE;}
224  virtual const char *MapCppName(const char*) const {return 0;}
225  virtual void SetAlloclockfunc(void (*)()) const {;}
226  virtual void SetAllocunlockfunc(void (*)()) const {;}
227  virtual int SetClassAutoloading(int) const {return 0;}
228  virtual int SetClassAutoparsing(int) {return 0;};
229  virtual void SetErrmsgcallback(void * /* p */) const {;}
230  virtual void Setgvp(Long_t) const
231  R__DEPRECATED(6,10, "CINT remnant, not applicable to cling")
232  {;}
233  virtual void SetRTLD_NOW() const
234  R__DEPRECATED(6,10, "CINT remnant, not applicable to cling")
235  {;}
236  virtual void SetRTLD_LAZY() const
237  R__DEPRECATED(6,10, "CINT remnant, not applicable to cling")
238  {;}
239  virtual void SetTempLevel(int /* val */) const {;}
240  virtual int UnloadFile(const char * /* path */) const {return 0;}
241  virtual TInterpreterValue *CreateTemporary() { return 0; }
242  virtual void CodeComplete(const std::string&, size_t&,
243  std::vector<std::string>&) {;}
244  virtual int Evaluate(const char*, TInterpreterValue&) {return 0;}
245 
246  // core/meta helper functions.
247  virtual EReturnType MethodCallReturnType(TFunction *func) const = 0;
248  virtual ULong64_t GetInterpreterStateMarker() const = 0;
249  virtual bool DiagnoseIfInterpreterException(const std::exception &e) const = 0;
250 
252  virtual DeclId_t GetDeclId(CallFunc_t *info) const = 0;
253  virtual DeclId_t GetDeclId(ClassInfo_t *info) const = 0;
254  virtual DeclId_t GetDeclId(DataMemberInfo_t *info) const = 0;
255  virtual DeclId_t GetDeclId(FuncTempInfo_t *info) const = 0;
256  virtual DeclId_t GetDeclId(MethodInfo_t *info) const = 0;
257  virtual DeclId_t GetDeclId(TypedefInfo_t *info) const = 0;
258 
259  virtual void SetDeclAttr(DeclId_t, const char* /* attribute */) = 0 ;
260 
261  virtual DeclId_t GetDataMember(ClassInfo_t *cl, const char *name) const = 0;
262  virtual DeclId_t GetDataMemberAtAddr(const void *addr) const = 0;
263  virtual DeclId_t GetDataMemberWithValue(const void *ptrvalue) const = 0;
264  virtual DeclId_t GetEnum(TClass *cl, const char *name) const = 0;
265  virtual TEnum* CreateEnum(void *VD, TClass *cl) const = 0;
266  virtual void UpdateEnumConstants(TEnum* enumObj, TClass* cl) const = 0;
267  virtual void LoadEnums(TListOfEnums& cl) const = 0;
268  virtual DeclId_t GetFunction(ClassInfo_t *cl, const char *funcname) = 0;
269  virtual DeclId_t GetFunctionWithPrototype(ClassInfo_t *cl, const char* method, const char* proto, Bool_t objectIsConst = kFALSE, ROOT::EFunctionMatchMode mode = ROOT::kConversionMatch) = 0;
270  virtual DeclId_t GetFunctionWithValues(ClassInfo_t *cl, const char* method, const char* params, Bool_t objectIsConst = kFALSE) = 0;
271  virtual DeclId_t GetFunctionTemplate(ClassInfo_t *cl, const char *funcname) = 0;
272  virtual void GetFunctionOverloads(ClassInfo_t *cl, const char *funcname, std::vector<DeclId_t>& res) const = 0;
273  virtual void LoadFunctionTemplates(TClass* cl) const = 0;
274 
275  // CallFunc interface
276  virtual void CallFunc_Delete(CallFunc_t * /* func */) const {;}
277  virtual void CallFunc_Exec(CallFunc_t * /* func */, void * /* address */) const {;}
278  virtual void CallFunc_Exec(CallFunc_t * /* func */, void * /* address */, TInterpreterValue& /* val */) const {;}
279  virtual void CallFunc_ExecWithReturn(CallFunc_t * /* func */, void * /* address */, void * /* ret */) const {;}
280  virtual void CallFunc_ExecWithArgsAndReturn(CallFunc_t * /* func */, void * /* address */, const void* /* args */ [] = 0, int /*nargs*/ = 0, void * /* ret */ = 0) const {}
281  virtual Long_t CallFunc_ExecInt(CallFunc_t * /* func */, void * /* address */) const {return 0;}
282  virtual Long64_t CallFunc_ExecInt64(CallFunc_t * /* func */, void * /* address */) const {return 0;}
283  virtual Double_t CallFunc_ExecDouble(CallFunc_t * /* func */, void * /* address */) const {return 0;}
284  virtual CallFunc_t *CallFunc_Factory() const {return 0;}
285  virtual CallFunc_t *CallFunc_FactoryCopy(CallFunc_t * /* func */) const {return 0;}
286  virtual MethodInfo_t *CallFunc_FactoryMethod(CallFunc_t * /* func */) const {return 0;}
287  virtual void CallFunc_IgnoreExtraArgs(CallFunc_t * /*func */, bool /*ignore*/) const {;}
288  virtual void CallFunc_Init(CallFunc_t * /* func */) const {;}
289  virtual Bool_t CallFunc_IsValid(CallFunc_t * /* func */) const {return 0;}
290  virtual CallFuncIFacePtr_t CallFunc_IFacePtr(CallFunc_t * /* func */) const {return CallFuncIFacePtr_t();}
291  virtual void CallFunc_ResetArg(CallFunc_t * /* func */) const {;}
292  virtual void CallFunc_SetArgArray(CallFunc_t * /* func */, Long_t * /* paramArr */, Int_t /* nparam */) const {;}
293  virtual void CallFunc_SetArgs(CallFunc_t * /* func */, const char * /* param */) const {;}
294 
295  virtual void CallFunc_SetArg(CallFunc_t * /*func */, Long_t /* param */) const = 0;
296  virtual void CallFunc_SetArg(CallFunc_t * /*func */, ULong_t /* param */) const = 0;
297  virtual void CallFunc_SetArg(CallFunc_t * /* func */, Float_t /* param */) const = 0;
298  virtual void CallFunc_SetArg(CallFunc_t * /* func */, Double_t /* param */) const = 0;
299  virtual void CallFunc_SetArg(CallFunc_t * /* func */, Long64_t /* param */) const = 0;
300  virtual void CallFunc_SetArg(CallFunc_t * /* func */, ULong64_t /* param */) const = 0;
301 
302  void CallFunc_SetArg(CallFunc_t * func, Char_t param) const { CallFunc_SetArg(func,(Long_t)param); }
303  void CallFunc_SetArg(CallFunc_t * func, Short_t param) const { CallFunc_SetArg(func,(Long_t)param); }
304  void CallFunc_SetArg(CallFunc_t * func, Int_t param) const { CallFunc_SetArg(func,(Long_t)param); }
305 
306  void CallFunc_SetArg(CallFunc_t * func, UChar_t param) const { CallFunc_SetArg(func,(ULong_t)param); }
307  void CallFunc_SetArg(CallFunc_t * func, UShort_t param) const { CallFunc_SetArg(func,(ULong_t)param); }
308  void CallFunc_SetArg(CallFunc_t * func, UInt_t param) const { CallFunc_SetArg(func,(ULong_t)param); }
309 
310  template <typename T>
311  void CallFunc_SetArgRef(CallFunc_t * func, T &param) const { CallFunc_SetArg(func,(ULong_t)&param); }
312 
313  void CallFunc_SetArg(CallFunc_t *func, void *arg)
314  {
315  CallFunc_SetArg(func,(Long_t) arg);
316  }
317 
318  template <typename T>
319  void CallFunc_SetArg(CallFunc_t *func, const T *arg)
320  {
321  CallFunc_SetArg(func,(Long_t) arg);
322  }
323 
324  void CallFunc_SetArgImpl(CallFunc_t * /* func */)
325  {
326  }
327 
328  template <typename U>
329  void CallFunc_SetArgImpl(CallFunc_t *func, const U& head)
330  {
331  CallFunc_SetArg(func, head);
332  }
333 
334  template <typename U, typename... T>
335  void CallFunc_SetArgImpl(CallFunc_t *func, const U& head, const T&... tail)
336  {
337  CallFunc_SetArg(func, head);
338  CallFunc_SetArgImpl(func, tail...);
339  }
340 
341  template <typename... T>
342  void CallFunc_SetArguments(CallFunc_t *func, const T&... args)
343  {
345 
346  CallFunc_ResetArg(func);
347  CallFunc_SetArgImpl(func,args...);
348  }
349 
350  virtual void CallFunc_SetFunc(CallFunc_t * /* func */, ClassInfo_t * /* info */, const char * /* method */, const char * /* params */, bool /* objectIsConst */, Long_t * /* Offset */) const {;}
351  virtual void CallFunc_SetFunc(CallFunc_t * /* func */, ClassInfo_t * /* info */, const char * /* method */, const char * /* params */, Long_t * /* Offset */) const {;}
352  virtual void CallFunc_SetFunc(CallFunc_t * /* func */, MethodInfo_t * /* info */) const {;}
353  virtual void CallFunc_SetFuncProto(CallFunc_t * /* func */, ClassInfo_t * /* info */, const char * /* method */, const char * /* proto */, Long_t * /* Offset */, ROOT::EFunctionMatchMode /* mode */ = ROOT::kConversionMatch) const {;}
354  virtual void CallFunc_SetFuncProto(CallFunc_t * /* func */, ClassInfo_t * /* info */, const char * /* method */, const char * /* proto */, bool /* objectIsConst */, Long_t * /* Offset */, ROOT::EFunctionMatchMode /* mode */ = ROOT::kConversionMatch) const {;}
355  virtual void CallFunc_SetFuncProto(CallFunc_t* func, ClassInfo_t* info, const char* method, const std::vector<TypeInfo_t*> &proto, Long_t* Offset, ROOT::EFunctionMatchMode mode = ROOT::kConversionMatch) const = 0;
356  virtual void CallFunc_SetFuncProto(CallFunc_t* func, ClassInfo_t* info, const char* method, const std::vector<TypeInfo_t*> &proto, bool objectIsConst, Long_t* Offset, ROOT::EFunctionMatchMode mode = ROOT::kConversionMatch) const = 0;
357 
358 
359  // ClassInfo interface
360  virtual Bool_t ClassInfo_Contains(ClassInfo_t *info, DeclId_t decl) const = 0;
361  virtual Long_t ClassInfo_ClassProperty(ClassInfo_t * /* info */) const {return 0;}
362  virtual void ClassInfo_Delete(ClassInfo_t * /* info */) const {;}
363  virtual void ClassInfo_Delete(ClassInfo_t * /* info */, void * /* arena */) const {;}
364  virtual void ClassInfo_DeleteArray(ClassInfo_t * /* info */, void * /* arena */, bool /* dtorOnly */) const {;}
365  virtual void ClassInfo_Destruct(ClassInfo_t * /* info */, void * /* arena */) const {;}
366  virtual ClassInfo_t *ClassInfo_Factory(Bool_t /*all*/ = kTRUE) const = 0;
367  virtual ClassInfo_t *ClassInfo_Factory(ClassInfo_t * /* cl */) const = 0;
368  virtual ClassInfo_t *ClassInfo_Factory(const char * /* name */) const = 0;
369  virtual Long_t ClassInfo_GetBaseOffset(ClassInfo_t* /* fromDerived */,
370  ClassInfo_t* /* toBase */, void* /* address */ = 0, bool /*isderived*/ = true) const {return 0;}
371  virtual int ClassInfo_GetMethodNArg(ClassInfo_t * /* info */, const char * /* method */,const char * /* proto */, Bool_t /* objectIsConst */ = false, ROOT::EFunctionMatchMode /* mode */ = ROOT::kConversionMatch) const {return 0;}
372  virtual Bool_t ClassInfo_HasDefaultConstructor(ClassInfo_t * /* info */) const {return 0;}
373  virtual Bool_t ClassInfo_HasMethod(ClassInfo_t * /* info */, const char * /* name */) const {return 0;}
374  virtual void ClassInfo_Init(ClassInfo_t * /* info */, const char * /* funcname */) const {;}
375  virtual void ClassInfo_Init(ClassInfo_t * /* info */, int /* tagnum */) const {;}
376  virtual Bool_t ClassInfo_IsBase(ClassInfo_t * /* info */, const char * /* name */) const {return 0;}
377  virtual Bool_t ClassInfo_IsEnum(const char * /* name */) const {return 0;}
378  virtual Bool_t ClassInfo_IsLoaded(ClassInfo_t * /* info */) const {return 0;}
379  virtual Bool_t ClassInfo_IsValid(ClassInfo_t * /* info */) const {return 0;}
380  virtual Bool_t ClassInfo_IsValidMethod(ClassInfo_t * /* info */, const char * /* method */,const char * /* proto */, Long_t * /* offset */, ROOT::EFunctionMatchMode /* mode */ = ROOT::kConversionMatch) const {return 0;}
381  virtual Bool_t ClassInfo_IsValidMethod(ClassInfo_t * /* info */, const char * /* method */,const char * /* proto */, Bool_t /* objectIsConst */, Long_t * /* offset */, ROOT::EFunctionMatchMode /* mode */ = ROOT::kConversionMatch) const {return 0;}
382  virtual int ClassInfo_Next(ClassInfo_t * /* info */) const {return 0;}
383  virtual void *ClassInfo_New(ClassInfo_t * /* info */) const {return 0;}
384  virtual void *ClassInfo_New(ClassInfo_t * /* info */, int /* n */) const {return 0;}
385  virtual void *ClassInfo_New(ClassInfo_t * /* info */, int /* n */, void * /* arena */) const {return 0;}
386  virtual void *ClassInfo_New(ClassInfo_t * /* info */, void * /* arena */) const {return 0;}
387  virtual Long_t ClassInfo_Property(ClassInfo_t * /* info */) const {return 0;}
388  virtual int ClassInfo_Size(ClassInfo_t * /* info */) const {return 0;}
389  virtual Long_t ClassInfo_Tagnum(ClassInfo_t * /* info */) const {return 0;}
390  virtual const char *ClassInfo_FileName(ClassInfo_t * /* info */) const {return 0;}
391  virtual const char *ClassInfo_FullName(ClassInfo_t * /* info */) const {return 0;}
392  virtual const char *ClassInfo_Name(ClassInfo_t * /* info */) const {return 0;}
393  virtual const char *ClassInfo_Title(ClassInfo_t * /* info */) const {return 0;}
394  virtual const char *ClassInfo_TmpltName(ClassInfo_t * /* info */) const {return 0;}
395 
396 
397  // BaseClassInfo interface
398  virtual void BaseClassInfo_Delete(BaseClassInfo_t * /* bcinfo */) const {;}
399  virtual BaseClassInfo_t *BaseClassInfo_Factory(ClassInfo_t * /* info */) const {return 0;}
400  virtual BaseClassInfo_t *BaseClassInfo_Factory(ClassInfo_t* /* derived */,
401  ClassInfo_t* /* base */) const {return 0;}
402  virtual int BaseClassInfo_Next(BaseClassInfo_t * /* bcinfo */) const {return 0;}
403  virtual int BaseClassInfo_Next(BaseClassInfo_t * /* bcinfo */, int /* onlyDirect */) const {return 0;}
404  virtual Long_t BaseClassInfo_Offset(BaseClassInfo_t * /* toBaseClassInfo */, void* /* address */ = 0 /*default for non-virtual*/, bool /*isderived*/ = true /*default for non-virtual*/) const {return 0;}
405  virtual Long_t BaseClassInfo_Property(BaseClassInfo_t * /* bcinfo */) const {return 0;}
406  virtual Long_t BaseClassInfo_Tagnum(BaseClassInfo_t * /* bcinfo */) const {return 0;}
407  virtual ClassInfo_t*BaseClassInfo_ClassInfo(BaseClassInfo_t * /* bcinfo */) const = 0;
408  virtual const char *BaseClassInfo_FullName(BaseClassInfo_t * /* bcinfo */) const {return 0;}
409  virtual const char *BaseClassInfo_Name(BaseClassInfo_t * /* bcinfo */) const {return 0;}
410  virtual const char *BaseClassInfo_TmpltName(BaseClassInfo_t * /* bcinfo */) const {return 0;}
411 
412  // DataMemberInfo interface
413  virtual int DataMemberInfo_ArrayDim(DataMemberInfo_t * /* dminfo */) const {return 0;}
414  virtual void DataMemberInfo_Delete(DataMemberInfo_t * /* dminfo */) const {;}
415  virtual DataMemberInfo_t *DataMemberInfo_Factory(ClassInfo_t * /* clinfo */ = 0) const {return 0;}
416  virtual DataMemberInfo_t *DataMemberInfo_Factory(DeclId_t declid, ClassInfo_t* clinfo) const = 0;
417  virtual DataMemberInfo_t *DataMemberInfo_FactoryCopy(DataMemberInfo_t * /* dminfo */) const {return 0;}
418  virtual Bool_t DataMemberInfo_IsValid(DataMemberInfo_t * /* dminfo */) const {return 0;}
419  virtual int DataMemberInfo_MaxIndex(DataMemberInfo_t * /* dminfo */, Int_t /* dim */) const {return 0;}
420  virtual int DataMemberInfo_Next(DataMemberInfo_t * /* dminfo */) const {return 0;}
421  virtual Long_t DataMemberInfo_Offset(DataMemberInfo_t * /* dminfo */) const {return 0;}
422  virtual Long_t DataMemberInfo_Property(DataMemberInfo_t * /* dminfo */) const {return 0;}
423  virtual Long_t DataMemberInfo_TypeProperty(DataMemberInfo_t * /* dminfo */) const {return 0;}
424  virtual int DataMemberInfo_TypeSize(DataMemberInfo_t * /* dminfo */) const {return 0;}
425  virtual const char *DataMemberInfo_TypeName(DataMemberInfo_t * /* dminfo */) const {return 0;}
426  virtual const char *DataMemberInfo_TypeTrueName(DataMemberInfo_t * /* dminfo */) const {return 0;}
427  virtual const char *DataMemberInfo_Name(DataMemberInfo_t * /* dminfo */) const {return 0;}
428  virtual const char *DataMemberInfo_Title(DataMemberInfo_t * /* dminfo */) const {return 0;}
429  virtual const char *DataMemberInfo_ValidArrayIndex(DataMemberInfo_t * /* dminfo */) const {return 0;}
430 
431  // Function Template interface
432  virtual void FuncTempInfo_Delete(FuncTempInfo_t * /* ft_info */) const = 0;
433  virtual FuncTempInfo_t *FuncTempInfo_Factory(DeclId_t declid) const = 0;
434  virtual FuncTempInfo_t *FuncTempInfo_FactoryCopy(FuncTempInfo_t * /* ft_info */) const = 0;
435  virtual Bool_t FuncTempInfo_IsValid(FuncTempInfo_t * /* ft_info */) const = 0;
436  virtual UInt_t FuncTempInfo_TemplateNargs(FuncTempInfo_t * /* ft_info */) const = 0;
437  virtual UInt_t FuncTempInfo_TemplateMinReqArgs(FuncTempInfo_t * /* ft_info */) const = 0;
438  virtual Long_t FuncTempInfo_Property(FuncTempInfo_t * /* ft_info */) const = 0;
439  virtual void FuncTempInfo_Name(FuncTempInfo_t * /* ft_info */, TString &name) const = 0;
440  virtual void FuncTempInfo_Title(FuncTempInfo_t * /* ft_info */, TString &title) const = 0;
441 
442  // MethodInfo interface
443  virtual void MethodInfo_CreateSignature(MethodInfo_t * /* minfo */, TString & /* signature */) const {;}
444  virtual void MethodInfo_Delete(MethodInfo_t * /* minfo */) const {;}
445  virtual MethodInfo_t *MethodInfo_Factory() const {return 0;}
446  virtual MethodInfo_t *MethodInfo_Factory(ClassInfo_t * /*clinfo*/) const {return 0;}
447  virtual MethodInfo_t *MethodInfo_Factory(DeclId_t declid) const = 0;
448  virtual MethodInfo_t *MethodInfo_FactoryCopy(MethodInfo_t * /* minfo */) const {return 0;}
449  virtual void *MethodInfo_InterfaceMethod(MethodInfo_t * /* minfo */) const {return 0;}
450  virtual Bool_t MethodInfo_IsValid(MethodInfo_t * /* minfo */) const {return 0;}
451  virtual int MethodInfo_NArg(MethodInfo_t * /* minfo */) const {return 0;}
452  virtual int MethodInfo_NDefaultArg(MethodInfo_t * /* minfo */) const {return 0;}
453  virtual int MethodInfo_Next(MethodInfo_t * /* minfo */) const {return 0;}
454  virtual Long_t MethodInfo_Property(MethodInfo_t * /* minfo */) const = 0;
455  virtual Long_t MethodInfo_ExtraProperty(MethodInfo_t * /* minfo */) const = 0;
456  virtual TypeInfo_t *MethodInfo_Type(MethodInfo_t * /* minfo */) const {return 0;}
457  virtual EReturnType MethodInfo_MethodCallReturnType(MethodInfo_t* minfo) const = 0;
458  virtual const char *MethodInfo_GetMangledName(MethodInfo_t * /* minfo */) const {return 0;}
459  virtual const char *MethodInfo_GetPrototype(MethodInfo_t * /* minfo */) const {return 0;}
460  virtual const char *MethodInfo_Name(MethodInfo_t * /* minfo */) const {return 0;}
461  virtual const char *MethodInfo_TypeName(MethodInfo_t * /* minfo */) const {return 0;}
462  virtual std::string MethodInfo_TypeNormalizedName(MethodInfo_t * /* minfo */) const {return "";}
463  virtual const char *MethodInfo_Title(MethodInfo_t * /* minfo */) const {return 0;}
464 
465  // MethodArgInfo interface
466  virtual void MethodArgInfo_Delete(MethodArgInfo_t * /* marginfo */) const {;}
467  virtual MethodArgInfo_t *MethodArgInfo_Factory() const {return 0;}
468  virtual MethodArgInfo_t *MethodArgInfo_Factory(MethodInfo_t * /*minfo*/) const {return 0;}
469  virtual MethodArgInfo_t *MethodArgInfo_FactoryCopy(MethodArgInfo_t * /* marginfo */) const {return 0;}
470  virtual Bool_t MethodArgInfo_IsValid(MethodArgInfo_t * /* marginfo */) const {return 0;}
471  virtual int MethodArgInfo_Next(MethodArgInfo_t * /* marginfo */) const {return 0;}
472  virtual Long_t MethodArgInfo_Property(MethodArgInfo_t * /* marginfo */) const {return 0;}
473  virtual const char *MethodArgInfo_DefaultValue(MethodArgInfo_t * /* marginfo */) const {return 0;}
474  virtual const char *MethodArgInfo_Name(MethodArgInfo_t * /* marginfo */) const {return 0;}
475  virtual const char *MethodArgInfo_TypeName(MethodArgInfo_t * /* marginfo */) const {return 0;}
476  virtual std::string MethodArgInfo_TypeNormalizedName(MethodArgInfo_t * /* marginfo */) const = 0;
477 
478 
479  // TypeInfo interface
480  virtual void TypeInfo_Delete(TypeInfo_t * /* tinfo */) const {;}
481  virtual TypeInfo_t *TypeInfo_Factory() const {return 0;}
482  virtual TypeInfo_t *TypeInfo_Factory(const char* /* name */) const {return 0;}
483  virtual TypeInfo_t *TypeInfo_FactoryCopy(TypeInfo_t * /* tinfo */) const {return 0;}
484  virtual void TypeInfo_Init(TypeInfo_t * /* tinfo */, const char * /* funcname */) const {;}
485  virtual Bool_t TypeInfo_IsValid(TypeInfo_t * /* tinfo */) const {return 0;}
486  virtual const char *TypeInfo_Name(TypeInfo_t * /* info */) const {return 0;}
487  virtual Long_t TypeInfo_Property(TypeInfo_t * /* tinfo */) const {return 0;}
488  virtual int TypeInfo_RefType(TypeInfo_t * /* tinfo */) const {return 0;}
489  virtual int TypeInfo_Size(TypeInfo_t * /* tinfo */) const {return 0;}
490  virtual const char *TypeInfo_TrueName(TypeInfo_t * /* tinfo */) const {return 0;}
491 
492 
493  // TypedefInfo interface
494  virtual void TypedefInfo_Delete(TypedefInfo_t * /* tinfo */) const {;}
495  virtual TypedefInfo_t *TypedefInfo_Factory() const {return 0;}
496  virtual TypedefInfo_t *TypedefInfo_Factory(const char *) const {return 0;}
497  virtual TypedefInfo_t *TypedefInfo_FactoryCopy(TypedefInfo_t * /* tinfo */) const {return 0;}
498  virtual void TypedefInfo_Init(TypedefInfo_t * /* tinfo */, const char * /* funcname */) const {;}
499  virtual Bool_t TypedefInfo_IsValid(TypedefInfo_t * /* tinfo */) const {return 0;}
500  virtual int TypedefInfo_Next(TypedefInfo_t* /*tinfo*/) const {return 0;}
501  virtual Long_t TypedefInfo_Property(TypedefInfo_t * /* tinfo */) const {return 0;}
502  virtual int TypedefInfo_Size(TypedefInfo_t * /* tinfo */) const {return 0;}
503  virtual const char *TypedefInfo_TrueName(TypedefInfo_t * /* tinfo */) const {return 0;}
504  virtual const char *TypedefInfo_Name(TypedefInfo_t * /* tinfo */) const {return 0;}
505  virtual const char *TypedefInfo_Title(TypedefInfo_t * /* tinfo */) const {return 0;}
506 
507  static TInterpreter *Instance();
508 
509  ClassDef(TInterpreter,0) //ABC defining interface to generic interpreter
510 };
511 
512 
513 typedef TInterpreter *CreateInterpreter_t(void* shlibHandle);
515 
516 #ifndef __CINT__
517 #define gInterpreter (TInterpreter::Instance())
518 R__EXTERN TInterpreter* (*gPtr2Interpreter)();
520 #endif
521 
522 #endif
virtual void Execute(TMethod *method, TObjArray *params, int *error=0)=0
Execute method on this object with parameters stored in the TObjArray.
void CallFunc_SetArg(CallFunc_t *func, Short_t param) const
Definition: TInterpreter.h:303
virtual int TypedefInfo_Next(TypedefInfo_t *) const
Definition: TInterpreter.h:500
virtual const char * ClassInfo_TmpltName(ClassInfo_t *) const
Definition: TInterpreter.h:394
void CallFunc_SetArg(CallFunc_t *func, Int_t param) const
Definition: TInterpreter.h:304
virtual const char * GetSTLIncludePath() const
Definition: TInterpreter.h:137
virtual Bool_t ClassInfo_HasDefaultConstructor(ClassInfo_t *) const
Definition: TInterpreter.h:372
virtual int DataMemberInfo_Next(DataMemberInfo_t *) const
Definition: TInterpreter.h:420
virtual void ResetAll()=0
virtual Bool_t TypedefInfo_IsValid(TypedefInfo_t *) const
Definition: TInterpreter.h:499
virtual void RegisterModule(const char *, const char **, const char **, const char *, const char *, void(*)(), const FwdDeclArgsToKeepCollection_t &fwdDeclArgsToKeep, const char **classesHeaders, Bool_t lateRegistration=false)=0
virtual void CallFunc_SetFuncProto(CallFunc_t *, ClassInfo_t *, const char *, const char *, Long_t *, ROOT::EFunctionMatchMode=ROOT::kConversionMatch) const
Definition: TInterpreter.h:353
virtual Long_t MethodArgInfo_Property(MethodArgInfo_t *) const
Definition: TInterpreter.h:472
virtual const char * BaseClassInfo_Name(BaseClassInfo_t *) const
Definition: TInterpreter.h:409
TInterpreter * CreateInterpreter_t(void *shlibHandle)
Definition: TInterpreter.h:513
RooCmdArg Offset(Bool_t flag=kTRUE)
virtual MethodInfo_t * MethodInfo_Factory(ClassInfo_t *) const
Definition: TInterpreter.h:446
#define R__DEPRECATED(MAJOR, MINOR, REASON)
Definition: RConfig.h:499
The TEnum class implements the enum type.
Definition: TEnum.h:42
virtual void LoadMacro(const char *filename, EErrorCode *error=0)=0
This class defines an abstract interface to a generic command line interpreter.
Definition: TInterpreter.h:50
virtual Bool_t ClassInfo_IsValidMethod(ClassInfo_t *, const char *, const char *, Bool_t, Long_t *, ROOT::EFunctionMatchMode=ROOT::kConversionMatch) const
Definition: TInterpreter.h:381
An array of TObjects.
Definition: TObjArray.h:39
virtual void UpdateListOfTypes()=0
virtual void GenericError(const char *) const
Definition: TInterpreter.h:211
virtual FuncTempInfo_t * FuncTempInfo_FactoryCopy(FuncTempInfo_t *) const =0
void * DestroyInterpreter_t(TInterpreter *)
Definition: TInterpreter.h:514
long long Long64_t
Definition: RtypesCore.h:69
void CallFunc_SetArgImpl(CallFunc_t *func, const U &head, const T &... tail)
Definition: TInterpreter.h:335
virtual Long_t BaseClassInfo_Property(BaseClassInfo_t *) const
Definition: TInterpreter.h:405
virtual const char * DataMemberInfo_ValidArrayIndex(DataMemberInfo_t *) const
Definition: TInterpreter.h:429
virtual CallFunc_t * CallFunc_Factory() const
Definition: TInterpreter.h:284
virtual int ClassInfo_Next(ClassInfo_t *) const
Definition: TInterpreter.h:382
virtual CallFuncIFacePtr_t CallFunc_IFacePtr(CallFunc_t *) const
Definition: TInterpreter.h:290
virtual void CallFunc_SetArgArray(CallFunc_t *, Long_t *, Int_t) const
Definition: TInterpreter.h:292
TLine * line
virtual DeclId_t GetFunctionWithValues(ClassInfo_t *cl, const char *method, const char *params, Bool_t objectIsConst=kFALSE)=0
virtual const char * MethodArgInfo_DefaultValue(MethodArgInfo_t *) const
Definition: TInterpreter.h:473
virtual void FuncTempInfo_Name(FuncTempInfo_t *, TString &name) const =0
float Float_t
Definition: RtypesCore.h:53
virtual void MethodInfo_CreateSignature(MethodInfo_t *, TString &) const
Definition: TInterpreter.h:443
virtual void GetInterpreterTypeName(const char *name, std::string &output, Bool_t full=kFALSE)=0
virtual const char * TypeInfo_TrueName(TypeInfo_t *) const
Definition: TInterpreter.h:490
virtual Bool_t FuncTempInfo_IsValid(FuncTempInfo_t *) const =0
TDictionary::DeclId_t DeclId_t
Definition: TInterpreter.h:251
virtual void RewindDictionary()=0
virtual Bool_t ClassInfo_IsValid(ClassInfo_t *) const
Definition: TInterpreter.h:379
virtual Int_t DeleteVariable(const char *name)=0
virtual void CallFunc_SetFunc(CallFunc_t *, MethodInfo_t *) const
Definition: TInterpreter.h:352
virtual int TypeInfo_RefType(TypeInfo_t *) const
Definition: TInterpreter.h:488
double T(double x)
Definition: ChebyshevPol.h:34
virtual UInt_t FuncTempInfo_TemplateMinReqArgs(FuncTempInfo_t *) const =0
R__EXTERN TVirtualMutex * gInterpreterMutex
Definition: TInterpreter.h:46
virtual TEnum * CreateEnum(void *VD, TClass *cl) const =0
unsigned short UShort_t
Definition: RtypesCore.h:36
virtual void UpdateListOfGlobalFunctions()=0
virtual CallFunc_t * CallFunc_FactoryCopy(CallFunc_t *) const
Definition: TInterpreter.h:285
virtual const char * GetTopLevelMacroName() const
Definition: TInterpreter.h:219
virtual void SetRTLD_NOW() const R__DEPRECATED(6
virtual TObjArray * GetRootMapFiles() const =0
void CallFunc_SetArg(CallFunc_t *func, UChar_t param) const
Definition: TInterpreter.h:306
virtual TypedefInfo_t * TypedefInfo_FactoryCopy(TypedefInfo_t *) const
Definition: TInterpreter.h:497
virtual void TypedefInfo_Delete(TypedefInfo_t *) const
Definition: TInterpreter.h:494
virtual Bool_t DataMemberInfo_IsValid(DataMemberInfo_t *) const
Definition: TInterpreter.h:418
virtual void CallFunc_ExecWithArgsAndReturn(CallFunc_t *, void *, const void *[]=0, int=0, void *=0) const
Definition: TInterpreter.h:280
virtual Bool_t TypeInfo_IsValid(TypeInfo_t *) const
Definition: TInterpreter.h:485
virtual DeclId_t GetFunctionTemplate(ClassInfo_t *cl, const char *funcname)=0
virtual Int_t GenerateDictionary(const char *classes, const char *includes=0, const char *options=0)=0
virtual const char * MethodArgInfo_TypeName(MethodArgInfo_t *) const
Definition: TInterpreter.h:475
virtual DataMemberInfo_t * DataMemberInfo_FactoryCopy(DataMemberInfo_t *) const
Definition: TInterpreter.h:417
virtual void LoadEnums(TListOfEnums &cl) const =0
This class implements a mutex interface.
Definition: TVirtualMutex.h:34
virtual const char * ClassInfo_FileName(ClassInfo_t *) const
Definition: TInterpreter.h:390
virtual int ClassInfo_GetMethodNArg(ClassInfo_t *, const char *, const char *, Bool_t=false, ROOT::EFunctionMatchMode=ROOT::kConversionMatch) const
Definition: TInterpreter.h:371
virtual Long_t BaseClassInfo_Tagnum(BaseClassInfo_t *) const
Definition: TInterpreter.h:406
virtual Long_t FuncTempInfo_Property(FuncTempInfo_t *) const =0
The TEnv class reads config files, by default named .rootrc.
Definition: TEnv.h:128
Basic string class.
Definition: TString.h:137
virtual TypeInfo_t * TypeInfo_Factory() const
Definition: TInterpreter.h:481
virtual void Setgvp(Long_t) const R__DEPRECATED(6
void CallFunc_SetArgImpl(CallFunc_t *func, const U &head)
Definition: TInterpreter.h:329
virtual void UpdateListOfGlobals()=0
virtual Long_t CallFunc_ExecInt(CallFunc_t *, void *) const
Definition: TInterpreter.h:281
virtual Bool_t ClassInfo_IsLoaded(ClassInfo_t *) const
Definition: TInterpreter.h:378
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
virtual Long_t BaseClassInfo_Offset(BaseClassInfo_t *, void *=0, bool=true) const
Definition: TInterpreter.h:404
std::vector< std::pair< std::string, int > > FwdDeclArgsToKeepCollection_t
Definition: TInterpreter.h:108
const Bool_t kFALSE
Definition: Rtypes.h:92
virtual const char * TypedefInfo_TrueName(TypedefInfo_t *) const
Definition: TInterpreter.h:503
virtual DeclId_t GetEnum(TClass *cl, const char *name) const =0
virtual const char * MethodInfo_Name(MethodInfo_t *) const
Definition: TInterpreter.h:460
virtual void MethodArgInfo_Delete(MethodArgInfo_t *) const
Definition: TInterpreter.h:466
Abstract base class for accessing the data-members of a class.
virtual int UnloadFile(const char *) const
Definition: TInterpreter.h:240
virtual void RegisterTClassUpdate(TClass *oldcl, DictFuncPtr_t dict)=0
virtual void SetGetline(const char *(*getlineFunc)(const char *prompt), void(*histaddFunc)(const char *line))=0
virtual TypeInfo_t * TypeInfo_FactoryCopy(TypeInfo_t *) const
Definition: TInterpreter.h:483
const void * DeclId_t
Definition: TDictionary.h:209
virtual Int_t DeleteGlobal(void *obj)=0
virtual Bool_t ClassInfo_Contains(ClassInfo_t *info, DeclId_t decl) const =0
virtual Long_t GetExecByteCode() const
Definition: TInterpreter.h:212
virtual int GetSecurityError() const
Definition: TInterpreter.h:221
virtual void TypeInfo_Delete(TypeInfo_t *) const
Definition: TInterpreter.h:480
virtual void ResetGlobalVar(void *obj)=0
virtual void PrintIntro()=0
virtual Long_t TypedefInfo_Property(TypedefInfo_t *) const
Definition: TInterpreter.h:501
virtual void ClassInfo_Destruct(ClassInfo_t *, void *) const
Definition: TInterpreter.h:365
virtual void MethodInfo_Delete(MethodInfo_t *) const
Definition: TInterpreter.h:444
virtual Long_t TypeInfo_Property(TypeInfo_t *) const
Definition: TInterpreter.h:487
virtual const char * DataMemberInfo_Title(DataMemberInfo_t *) const
Definition: TInterpreter.h:428
virtual int Evaluate(const char *, TInterpreterValue &)
Definition: TInterpreter.h:244
virtual void EndOfLineAction()=0
virtual int ClassInfo_Size(ClassInfo_t *) const
Definition: TInterpreter.h:388
virtual Double_t CallFunc_ExecDouble(CallFunc_t *, void *) const
Definition: TInterpreter.h:283
virtual void UpdateEnumConstants(TEnum *enumObj, TClass *cl) const =0
virtual const char * ClassInfo_Title(ClassInfo_t *) const
Definition: TInterpreter.h:393
virtual void CallFunc_SetArg(CallFunc_t *, Long_t) const =0
#define ClassDef(name, id)
Definition: Rtypes.h:254
virtual void ClearFileBusy()=0
virtual void UnRegisterTClassUpdate(const TClass *oldcl)=0
virtual int TypeInfo_Size(TypeInfo_t *) const
Definition: TInterpreter.h:489
virtual int MethodArgInfo_Next(MethodArgInfo_t *) const
Definition: TInterpreter.h:471
virtual TClass * GenerateTClass(const char *classname, Bool_t emulation, Bool_t silent=kFALSE)=0
virtual DeclId_t GetFunctionWithPrototype(ClassInfo_t *cl, const char *method, const char *proto, Bool_t objectIsConst=kFALSE, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch)=0
The TNamed class is the base class for all named ROOT classes.
Definition: TNamed.h:33
void CallFunc_SetArg(CallFunc_t *func, UShort_t param) const
Definition: TInterpreter.h:307
virtual const char * MapCppName(const char *) const
Definition: TInterpreter.h:224
virtual Long_t ClassInfo_Property(ClassInfo_t *) const
Definition: TInterpreter.h:387
virtual TString GetMangledNameWithPrototype(TClass *cl, const char *method, const char *proto, Bool_t objectIsConst=kFALSE, ROOT::EFunctionMatchMode=ROOT::kConversionMatch)=0
virtual ClassInfo_t * ClassInfo_Factory(Bool_t=kTRUE) const =0
virtual Bool_t Declare(const char *code)=0
virtual Int_t AutoLoad(const char *classname, Bool_t knowDictNotLoaded=kFALSE)=0
virtual void * ClassInfo_New(ClassInfo_t *) const
Definition: TInterpreter.h:383
virtual void TypeInfo_Init(TypeInfo_t *, const char *) const
Definition: TInterpreter.h:484
virtual Int_t RescanLibraryMap()=0
virtual TEnv * GetMapfile() const
Definition: TInterpreter.h:127
virtual void SetDeclAttr(DeclId_t, const char *)=0
virtual DeclId_t GetDataMemberAtAddr(const void *addr) const =0
void CallFunc_SetArguments(CallFunc_t *func, const T &... args)
Definition: TInterpreter.h:342
EFunctionMatchMode
Definition: TDictionary.h:155
virtual void EnableAutoLoading()=0
virtual void CallFunc_SetFunc(CallFunc_t *, ClassInfo_t *, const char *, const char *, bool, Long_t *) const
Definition: TInterpreter.h:350
virtual const char * MethodInfo_Title(MethodInfo_t *) const
Definition: TInterpreter.h:463
virtual Int_t GetMore() const =0
virtual void * GetInterfaceMethod(TClass *cl, const char *method, const char *params, Bool_t objectIsConst=kFALSE)=0
CallFuncIFacePtr_t(Generic_t func)
Definition: TInterpreter.h:83
virtual Long_t DataMemberInfo_Property(DataMemberInfo_t *) const
Definition: TInterpreter.h:422
virtual Long_t ProcessLineSynch(const char *line, EErrorCode *error=0)=0
virtual void SetClassInfo(TClass *cl, Bool_t reload=kFALSE)=0
TClass *(* DictFuncPtr_t)()
Definition: Rtypes.h:75
virtual void CodeComplete(const std::string &, size_t &, std::vector< std::string > &)
Definition: TInterpreter.h:242
virtual const char * TypeName(const char *s)=0
virtual DeclId_t GetDataMemberWithValue(const void *ptrvalue) const =0
virtual void Initialize()=0
virtual MethodArgInfo_t * MethodArgInfo_FactoryCopy(MethodArgInfo_t *) const
Definition: TInterpreter.h:469
virtual EReturnType MethodCallReturnType(TFunction *func) const =0
virtual void ExecuteWithArgsAndReturn(TMethod *method, void *address, const void *args[]=0, int=0, void *ret=0) const =0
void CallFunc_SetArg(CallFunc_t *func, Char_t param) const
Definition: TInterpreter.h:302
virtual int MethodInfo_NArg(MethodInfo_t *) const
Definition: TInterpreter.h:451
virtual const char * GetSharedLibs()=0
virtual const char * GetIncludePath()=0
virtual FuncTempInfo_t * FuncTempInfo_Factory(DeclId_t declid) const =0
SuspendAutoParsing(TInterpreter *where, Bool_t value=kTRUE)
Definition: TInterpreter.h:102
virtual void ClassInfo_Delete(ClassInfo_t *, void *) const
Definition: TInterpreter.h:363
virtual int DataMemberInfo_MaxIndex(DataMemberInfo_t *, Int_t) const
Definition: TInterpreter.h:419
virtual const char * BaseClassInfo_TmpltName(BaseClassInfo_t *) const
Definition: TInterpreter.h:410
virtual void * MethodInfo_InterfaceMethod(MethodInfo_t *) const
Definition: TInterpreter.h:449
virtual const char * DataMemberInfo_TypeName(DataMemberInfo_t *) const
Definition: TInterpreter.h:425
virtual DataMemberInfo_t * DataMemberInfo_Factory(ClassInfo_t *=0) const
Definition: TInterpreter.h:415
virtual Int_t ReloadAllSharedLibraryMaps()=0
void CallFunc_SetArg(CallFunc_t *func, void *arg)
Definition: TInterpreter.h:313
virtual void DataMemberInfo_Delete(DataMemberInfo_t *) const
Definition: TInterpreter.h:414
virtual Int_t UnloadLibraryMap(const char *library)=0
virtual Bool_t IsLoaded(const char *filename) const =0
virtual void TypedefInfo_Init(TypedefInfo_t *, const char *) const
Definition: TInterpreter.h:498
virtual const char * MethodArgInfo_Name(MethodArgInfo_t *) const
Definition: TInterpreter.h:474
virtual void SetRTLD_LAZY() const R__DEPRECATED(6
virtual void * FindSym(const char *) const
Definition: TInterpreter.h:210
virtual Long64_t CallFunc_ExecInt64(CallFunc_t *, void *) const
Definition: TInterpreter.h:282
virtual void CallFunc_ExecWithReturn(CallFunc_t *, void *, void *) const
Definition: TInterpreter.h:279
virtual const char * Getp2f2funcname(void *) const R__DEPRECATED(6
virtual int BaseClassInfo_Next(BaseClassInfo_t *, int) const
Definition: TInterpreter.h:403
virtual void ClassInfo_Init(ClassInfo_t *, int) const
Definition: TInterpreter.h:375
void CallFunc_SetArgRef(CallFunc_t *func, T &param) const
Definition: TInterpreter.h:311
virtual Long_t DataMemberInfo_TypeProperty(DataMemberInfo_t *) const
Definition: TInterpreter.h:423
virtual void ResetGlobals()=0
virtual TypeInfo_t * TypeInfo_Factory(const char *) const
Definition: TInterpreter.h:482
virtual const char * GetCurrentMacroName() const
Definition: TInterpreter.h:220
virtual Bool_t MethodInfo_IsValid(MethodInfo_t *) const
Definition: TInterpreter.h:450
virtual void InspectMembers(TMemberInspector &, const void *obj, const TClass *cl, Bool_t isTransient)=0
virtual Int_t AutoParse(const char *cls)=0
virtual void SetErrmsgcallback(void *) const
Definition: TInterpreter.h:229
virtual std::string MethodInfo_TypeNormalizedName(MethodInfo_t *) const
Definition: TInterpreter.h:462
virtual void CreateListOfMethods(TClass *cl) const =0
unsigned int UInt_t
Definition: RtypesCore.h:42
TMarker * m
Definition: textangle.C:8
virtual void CallFunc_Init(CallFunc_t *) const
Definition: TInterpreter.h:288
virtual void SetProcessLineLock(Bool_t lock=kTRUE)=0
virtual void * SetAutoLoadCallBack(void *)
Definition: TInterpreter.h:115
virtual Int_t LoadLibraryMap(const char *rootmapfile=0)=0
virtual void CreateListOfMethodArgs(TFunction *m) const =0
short Short_t
Definition: RtypesCore.h:35
virtual void CallFunc_Exec(CallFunc_t *, void *, TInterpreterValue &) const
Definition: TInterpreter.h:278
The ROOT global object gROOT contains a list of all defined classes.
Definition: TClass.h:81
virtual void SaveContext()=0
virtual void CallFunc_IgnoreExtraArgs(CallFunc_t *, bool) const
Definition: TInterpreter.h:287
virtual void CallFunc_SetFunc(CallFunc_t *, ClassInfo_t *, const char *, const char *, Long_t *) const
Definition: TInterpreter.h:351
virtual Int_t Load(const char *filenam, Bool_t system=kFALSE)=0
virtual DeclId_t GetDeclId(CallFunc_t *info) const =0
static TInterpreter * Instance()
returns gInterpreter global
virtual Long_t DataMemberInfo_Offset(DataMemberInfo_t *) const
Definition: TInterpreter.h:421
virtual MethodInfo_t * MethodInfo_Factory() const
Definition: TInterpreter.h:445
virtual BaseClassInfo_t * BaseClassInfo_Factory(ClassInfo_t *) const
Definition: TInterpreter.h:399
virtual const char * MethodInfo_GetMangledName(MethodInfo_t *) const
Definition: TInterpreter.h:458
virtual Bool_t CheckClassTemplate(const char *name)=0
#define R__LOCKGUARD2(mutex)
virtual Bool_t ClassInfo_IsEnum(const char *) const
Definition: TInterpreter.h:377
void CallFunc_SetArgImpl(CallFunc_t *)
Definition: TInterpreter.h:324
void CallFunc_SetArg(CallFunc_t *func, const T *arg)
Definition: TInterpreter.h:319
virtual void ClassInfo_DeleteArray(ClassInfo_t *, void *, bool) const
Definition: TInterpreter.h:364
long Long_t
Definition: RtypesCore.h:50
virtual TClass * GetClass(const std::type_info &typeinfo, Bool_t load) const =0
virtual Bool_t IsErrorMessagesEnabled() const =0
virtual int BaseClassInfo_Next(BaseClassInfo_t *) const
Definition: TInterpreter.h:402
int(* AutoLoadCallBack_t)(const char *)
Definition: TInterpreter.h:107
virtual char * GetPrompt()=0
virtual std::string MethodArgInfo_TypeNormalizedName(MethodArgInfo_t *) const =0
virtual DeclId_t GetDataMember(ClassInfo_t *cl, const char *name) const =0
virtual MethodInfo_t * MethodInfo_FactoryCopy(MethodInfo_t *) const
Definition: TInterpreter.h:448
virtual void ClassInfo_Init(ClassInfo_t *, const char *) const
Definition: TInterpreter.h:374
virtual const char * MethodInfo_GetPrototype(MethodInfo_t *) const
Definition: TInterpreter.h:459
virtual void BaseClassInfo_Delete(BaseClassInfo_t *) const
Definition: TInterpreter.h:398
double Double_t
Definition: RtypesCore.h:55
virtual const char * MethodInfo_TypeName(MethodInfo_t *) const
Definition: TInterpreter.h:461
virtual void * ClassInfo_New(ClassInfo_t *, void *) const
Definition: TInterpreter.h:386
virtual void SetAlloclockfunc(void(*)()) const
Definition: TInterpreter.h:225
virtual void CallFunc_SetFuncProto(CallFunc_t *, ClassInfo_t *, const char *, const char *, bool, Long_t *, ROOT::EFunctionMatchMode=ROOT::kConversionMatch) const
Definition: TInterpreter.h:354
virtual Long_t Calc(const char *line, EErrorCode *error=0)=0
virtual ~TInterpreter()
Definition: TInterpreter.h:112
virtual Bool_t ClassInfo_IsValidMethod(ClassInfo_t *, const char *, const char *, Long_t *, ROOT::EFunctionMatchMode=ROOT::kConversionMatch) const
Definition: TInterpreter.h:380
virtual TInterpreterValue * CreateTemporary()
Definition: TInterpreter.h:241
unsigned long long ULong64_t
Definition: RtypesCore.h:70
virtual void CallFunc_SetArgs(CallFunc_t *, const char *) const
Definition: TInterpreter.h:293
virtual int DataMemberInfo_TypeSize(DataMemberInfo_t *) const
Definition: TInterpreter.h:424
unsigned long ULong_t
Definition: RtypesCore.h:51
virtual Int_t UnloadAllSharedLibraryMaps()=0
virtual void LoadFunctionTemplates(TClass *cl) const =0
virtual void CallFunc_Delete(CallFunc_t *) const
Definition: TInterpreter.h:276
virtual Bool_t SetSuspendAutoParsing(Bool_t value)=0
virtual const char * TypedefInfo_Name(TypedefInfo_t *) const
Definition: TInterpreter.h:504
virtual Long_t ClassInfo_GetBaseOffset(ClassInfo_t *, ClassInfo_t *, void *=0, bool=true) const
Definition: TInterpreter.h:369
double func(double *x, double *p)
Definition: stressTF1.cxx:213
virtual int DisplayIncludePath(FILE *) const
Definition: TInterpreter.h:209
virtual TypedefInfo_t * TypedefInfo_Factory(const char *) const
Definition: TInterpreter.h:496
virtual Long_t ProcessLine(const char *line, EErrorCode *error=0)=0
you should not use this method at all Int_t Int_t Double_t Double_t Double_t e
Definition: TRolke.cxx:630
virtual const char * TypedefInfo_Title(TypedefInfo_t *) const
Definition: TInterpreter.h:505
virtual int MethodInfo_Next(MethodInfo_t *) const
Definition: TInterpreter.h:453
virtual void FuncTempInfo_Title(FuncTempInfo_t *, TString &title) const =0
virtual Long_t MethodInfo_ExtraProperty(MethodInfo_t *) const =0
virtual Long_t ExecuteMacro(const char *filename, EErrorCode *error=0)=0
virtual void Reset()=0
virtual void SaveGlobalsContext()=0
virtual TypedefInfo_t * TypedefInfo_Factory() const
Definition: TInterpreter.h:495
virtual Long_t ClassInfo_Tagnum(ClassInfo_t *) const
Definition: TInterpreter.h:389
virtual const char * DataMemberInfo_Name(DataMemberInfo_t *) const
Definition: TInterpreter.h:427
Mother of all ROOT objects.
Definition: TObject.h:37
virtual const char * BaseClassInfo_FullName(BaseClassInfo_t *) const
Definition: TInterpreter.h:408
virtual void ClearStack()=0
Global functions class (global functions are obtained from CINT).
Definition: TFunction.h:30
#define R__EXTERN
Definition: DllImport.h:27
char Char_t
Definition: RtypesCore.h:29
virtual ULong64_t GetInterpreterStateMarker() const =0
virtual Int_t SetClassSharedLibs(const char *cls, const char *libs)=0
virtual void ClassInfo_Delete(ClassInfo_t *) const
Definition: TInterpreter.h:362
typedef void((*Func_t)())
virtual void CreateListOfBaseClasses(TClass *cl) const =0
virtual const char * ClassInfo_FullName(ClassInfo_t *) const
Definition: TInterpreter.h:391
virtual void * GetAutoLoadCallBack() const
Definition: TInterpreter.h:116
A collection of TEnum objects designed for fast access given a DeclId_t and for keep track of TEnum t...
Definition: TListOfEnums.h:36
virtual MethodArgInfo_t * MethodArgInfo_Factory(MethodInfo_t *) const
Definition: TInterpreter.h:468
virtual UInt_t FuncTempInfo_TemplateNargs(FuncTempInfo_t *) const =0
virtual TypeInfo_t * MethodInfo_Type(MethodInfo_t *) const
Definition: TInterpreter.h:456
virtual Bool_t IsProcessLineLocked() const =0
virtual const char * DataMemberInfo_TypeTrueName(DataMemberInfo_t *) const
Definition: TInterpreter.h:426
virtual void * ClassInfo_New(ClassInfo_t *, int, void *) const
Definition: TInterpreter.h:385
virtual Long_t ClassInfo_ClassProperty(ClassInfo_t *) const
Definition: TInterpreter.h:361
virtual int MethodInfo_NDefaultArg(MethodInfo_t *) const
Definition: TInterpreter.h:452
virtual const char * ClassInfo_Name(ClassInfo_t *) const
Definition: TInterpreter.h:392
virtual Bool_t ClassInfo_IsBase(ClassInfo_t *, const char *) const
Definition: TInterpreter.h:376
virtual void SetAllocunlockfunc(void(*)()) const
Definition: TInterpreter.h:226
Each ROOT class (see TClass) has a linked list of methods.
Definition: TMethod.h:40
virtual ClassInfo_t * BaseClassInfo_ClassInfo(BaseClassInfo_t *) const =0
virtual Long_t Getgvp() const R__DEPRECATED(6
virtual int SetClassAutoparsing(int)
Definition: TInterpreter.h:228
virtual BaseClassInfo_t * BaseClassInfo_Factory(ClassInfo_t *, ClassInfo_t *) const
Definition: TInterpreter.h:400
const char * proto
Definition: civetweb.c:11652
virtual int DataMemberInfo_ArrayDim(DataMemberInfo_t *) const
Definition: TInterpreter.h:413
virtual int DisplayClass(FILE *, const char *, int, int) const
Definition: TInterpreter.h:208
virtual TString GetMangledName(TClass *cl, const char *method, const char *params, Bool_t objectIsConst=kFALSE)=0
virtual Bool_t CheckClassInfo(const char *name, Bool_t autoload, Bool_t isClassOrNamespaceOnly=kFALSE)=0
unsigned char UChar_t
Definition: RtypesCore.h:34
virtual DeclId_t GetFunction(ClassInfo_t *cl, const char *funcname)=0
virtual void AddIncludePath(const char *path)=0
virtual void SetTempLevel(int) const
Definition: TInterpreter.h:239
virtual Bool_t CallFunc_IsValid(CallFunc_t *) const
Definition: TInterpreter.h:289
virtual void CallFunc_Exec(CallFunc_t *, void *) const
Definition: TInterpreter.h:277
R__EXTERN TInterpreter * gCling
Definition: TInterpreter.h:519
virtual Bool_t IsAutoParsingSuspended() const =0
virtual Bool_t MethodArgInfo_IsValid(MethodArgInfo_t *) const
Definition: TInterpreter.h:470
const Bool_t kTRUE
Definition: Rtypes.h:91
virtual void * GetInterfaceMethodWithPrototype(TClass *cl, const char *method, const char *proto, Bool_t objectIsConst=kFALSE, ROOT::EFunctionMatchMode=ROOT::kConversionMatch)=0
virtual const char * GetSharedLibDeps(const char *lib)=0
virtual void FuncTempInfo_Delete(FuncTempInfo_t *) const =0
virtual void CallFunc_ResetArg(CallFunc_t *) const
Definition: TInterpreter.h:291
virtual MethodArgInfo_t * MethodArgInfo_Factory() const
Definition: TInterpreter.h:467
virtual int LoadFile(const char *) const
Definition: TInterpreter.h:222
virtual const char * TypeInfo_Name(TypeInfo_t *) const
Definition: TInterpreter.h:486
virtual Int_t GetExitCode() const =0
virtual int TypedefInfo_Size(TypedefInfo_t *) const
Definition: TInterpreter.h:502
virtual Bool_t LoadText(const char *) const
Definition: TInterpreter.h:223
virtual void * ClassInfo_New(ClassInfo_t *, int) const
Definition: TInterpreter.h:384
virtual Bool_t ClassInfo_HasMethod(ClassInfo_t *, const char *) const
Definition: TInterpreter.h:373
char name[80]
Definition: TGX11.cxx:109
virtual void CreateListOfDataMembers(TClass *cl) const =0
virtual EReturnType MethodInfo_MethodCallReturnType(MethodInfo_t *minfo) const =0
virtual MethodInfo_t * CallFunc_FactoryMethod(CallFunc_t *) const
Definition: TInterpreter.h:286
virtual void GetFunctionOverloads(ClassInfo_t *cl, const char *funcname, std::vector< DeclId_t > &res) const =0
void CallFunc_SetArg(CallFunc_t *func, UInt_t param) const
Definition: TInterpreter.h:308
virtual bool DiagnoseIfInterpreterException(const std::exception &e) const =0
virtual int SetClassAutoloading(int) const
Definition: TInterpreter.h:227
virtual Bool_t SetErrorMessages(Bool_t enable=kTRUE)=0
virtual void UpdateListOfMethods(TClass *cl) const =0
virtual const char * GetClassSharedLibs(const char *cls)=0
virtual Long_t MethodInfo_Property(MethodInfo_t *) const =0