Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
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#include "TDataType.h"
26#include "TDictionary.h"
27#include "TInterpreterValue.h"
28#include "TNamed.h"
29#include "TVirtualRWMutex.h"
30
31#include <map>
32#include <typeinfo>
33#include <vector>
34#include <string>
35#include <utility>
36
37class TClass;
38class TEnv;
39class TFunction;
40class TMethod;
41class TObjArray;
42class TEnum;
43class TListOfEnums;
44class TSeqCollection;
45
47
48# define R__LOCKGUARD_CLING(mutex) ::ROOT::Internal::InterpreterMutexRegistrationRAII _R__UNIQUE_(R__guard)(mutex); { }
49
50namespace ROOT {
51namespace Internal {
56};
57}
58}
59
60class TInterpreter : public TNamed {
61
62protected:
63 void Execute(TMethod *method, TObjArray *params, int *error = nullptr) override = 0;
65
66 friend class SuspendAutoParsing;
67
68public:
69 // See as in TSchemaType.h.
70 typedef class std::map<std::string, std::string> MembersMap_t;
71
73 kNoError = 0,
74 kRecoverable = 1,
75 kDangerous = 2,
76 kFatal = 3,
77 kProcessing = 99
78 };
79
81
83 enum EKind {
87 kDtor
88 };
89
90 typedef void (*Generic_t)(void*, int, void**, void*);
91 typedef void (*Ctor_t)(void**, void*, unsigned long);
92 typedef void (*Dtor_t)(void*, unsigned long, int);
93
95 fKind(kUninitialized), fGeneric(nullptr) {}
97 fKind(kGeneric), fGeneric(func) {}
99 fKind(kCtor), fCtor(func) {}
101 fKind(kDtor), fDtor(func) {}
102
104 union {
108 };
109 };
110
114 public:
117 };
118 virtual Bool_t IsAutoParsingSuspended() const = 0;
119
123
124 public:
126 {
128 }
130 };
131
132 typedef int (*AutoLoadCallBack_t)(const char*);
133 typedef std::vector<std::pair<std::string, int> > FwdDeclArgsToKeepCollection_t;
134
135 TInterpreter() { } // for Dictionary
136 TInterpreter(const char *name, const char *title = "Generic Interpreter");
137 virtual ~TInterpreter() { }
138
139 virtual void AddIncludePath(const char *path) = 0;
140 virtual void *SetAutoLoadCallBack(void* /*cb*/) { return nullptr; }
141 virtual void *GetAutoLoadCallBack() const { return nullptr; }
142 virtual Int_t AutoLoad(const char *classname, Bool_t knowDictNotLoaded = kFALSE) = 0;
143 virtual Int_t AutoLoad(const std::type_info& typeinfo, Bool_t knowDictNotLoaded = kFALSE) = 0;
144 virtual Int_t AutoParse(const char* cls) = 0;
145 virtual void ClearFileBusy() = 0;
146 virtual void ClearStack() = 0; // Delete existing temporary values
147 virtual Bool_t Declare(const char* code) = 0;
148 virtual void EndOfLineAction() = 0;
149 virtual TClass *GetClass(const std::type_info& typeinfo, Bool_t load) const = 0;
150 virtual Int_t GetExitCode() const = 0;
151 virtual TEnv *GetMapfile() const { return nullptr; }
152 ///\brief Returns whether the interpreter is waiting for more input, i.e.
153 /// the collected input is incomplete.
154 virtual Int_t GetMore() const = 0;
155 virtual TClass *GenerateTClass(const char *classname, Bool_t emulation, Bool_t silent = kFALSE) = 0;
156 virtual TClass *GenerateTClass(ClassInfo_t *classinfo, Bool_t silent = kFALSE) = 0;
157 virtual Int_t GenerateDictionary(const char *classes, const char *includes = nullptr, const char *options = nullptr) = 0;
158 virtual char *GetPrompt() = 0;
159 virtual const char *GetSharedLibs() = 0;
160 virtual const char *GetClassSharedLibs(const char *cls, bool skipCore = true) = 0;
161 virtual const char *GetSharedLibDeps(const char *lib, bool tryDyld = false) = 0;
162 virtual const char *GetIncludePath() = 0;
163 virtual const char *GetSTLIncludePath() const { return ""; }
164 virtual TObjArray *GetRootMapFiles() const = 0;
165 virtual void Initialize() = 0;
166 virtual void ShutDown() = 0;
167 virtual void InspectMembers(TMemberInspector&, const void* obj, const TClass* cl, Bool_t isTransient) = 0;
168 virtual Bool_t IsLoaded(const char *filename) const = 0;
169 virtual Bool_t IsLibraryLoaded(const char *libname) const = 0;
170 virtual bool IsValid() const = 0;
171 virtual Bool_t HasPCMForLibrary(const char *libname) const = 0;
172 virtual Int_t Load(const char *filenam, Bool_t system = kFALSE) = 0;
173 virtual void LoadMacro(const char *filename, EErrorCode *error = nullptr) = 0;
174 virtual Int_t LoadLibraryMap(const char *rootmapfile = nullptr) = 0;
175 virtual Int_t RescanLibraryMap() = 0;
178 virtual Int_t UnloadLibraryMap(const char *library) = 0;
179 virtual Longptr_t ProcessLine(const char *line, EErrorCode *error = nullptr) = 0;
180 virtual Longptr_t ProcessLineSynch(const char *line, EErrorCode *error = nullptr) = 0;
181 virtual void PrintIntro() = 0;
182 virtual bool RegisterPrebuiltModulePath(const std::string& FullPath,
183 const std::string& ModuleMapName = "module.modulemap") const = 0;
184 virtual void RegisterModule(const char* /*modulename*/,
185 const char** /*headers*/,
186 const char** /*includePaths*/,
187 const char* /*payloadCode*/,
188 const char* /*fwdDeclsCode*/,
189 void (* /*triggerFunc*/)(),
190 const FwdDeclArgsToKeepCollection_t& fwdDeclArgsToKeep,
191 const char** classesHeaders,
192 Bool_t lateRegistration = false,
193 Bool_t hasCxxModule = false) = 0;
195 virtual void RegisterTClassUpdate(TClass *oldcl,DictFuncPtr_t dict) = 0;
196 virtual void UnRegisterTClassUpdate(const TClass *oldcl) = 0;
197 virtual Int_t SetClassSharedLibs(const char *cls, const char *libs) = 0;
198 virtual void SetGetline(const char*(*getlineFunc)(const char* prompt),
199 void (*histaddFunc)(const char* line)) = 0;
200 virtual void Reset() = 0;
201 virtual void ResetAll() = 0;
202 virtual void ResetGlobals() = 0;
203 virtual void ResetGlobalVar(void *obj) = 0;
204 virtual void RewindDictionary() = 0;
205 virtual Int_t DeleteGlobal(void *obj) = 0;
206 virtual Int_t DeleteVariable(const char* name) = 0;
207 virtual void SaveContext() = 0;
208 virtual void SaveGlobalsContext() = 0;
209 virtual void UpdateListOfGlobals() = 0;
210 virtual void UpdateListOfGlobalFunctions() = 0;
211 virtual void UpdateListOfTypes() = 0;
212 virtual void SetClassInfo(TClass *cl, Bool_t reload = kFALSE, Bool_t silent = kFALSE) = 0;
213
215 kUnknown = 0, // backward compatible with false
218 };
219 virtual ECheckClassInfo CheckClassInfo(const char *name, Bool_t autoload, Bool_t isClassOrNamespaceOnly = kFALSE) = 0;
220
221 virtual Bool_t CheckClassTemplate(const char *name) = 0;
222 virtual Longptr_t Calc(const char *line, EErrorCode* error = nullptr) = 0;
223 virtual void CreateListOfBaseClasses(TClass *cl) const = 0;
224 virtual void CreateListOfDataMembers(TClass *cl) const = 0;
225 virtual void CreateListOfMethods(TClass *cl) const = 0;
226 virtual void CreateListOfMethodArgs(TFunction *m) const = 0;
227 virtual void UpdateListOfMethods(TClass *cl) const = 0;
228 virtual TString GetMangledName(TClass *cl, const char *method, const char *params, Bool_t objectIsConst = kFALSE) = 0;
229 virtual TString GetMangledNameWithPrototype(TClass *cl, const char *method, const char *proto, Bool_t objectIsConst = kFALSE, ROOT::EFunctionMatchMode /* mode */ = ROOT::kConversionMatch) = 0;
230 virtual void GetInterpreterTypeName(const char *name, std::string &output, Bool_t full = kFALSE) = 0;
231 virtual void *GetInterfaceMethod(TClass *cl, const char *method, const char *params, Bool_t objectIsConst = kFALSE) = 0;
232 virtual void *GetInterfaceMethodWithPrototype(TClass *cl, const char *method, const char *proto, Bool_t objectIsConst = kFALSE, ROOT::EFunctionMatchMode /* mode */ = ROOT::kConversionMatch) = 0;
233 void Execute(const char *function, const char *params, int *error = nullptr) override = 0;
234 virtual void Execute(TObject *obj, TClass *cl, const char *method, const char *params, int *error = nullptr) = 0;
235 virtual void Execute(TObject *obj, TClass *cl, TMethod *method, TObjArray *params, int *error = nullptr) = 0;
236 virtual void ExecuteWithArgsAndReturn(TMethod *method, void* address, const void* args[] = nullptr, int /*nargs*/ = 0, void *ret= nullptr) const = 0;
237 virtual Longptr_t ExecuteMacro(const char *filename, EErrorCode *error = nullptr) = 0;
238 virtual Bool_t IsErrorMessagesEnabled() const = 0;
239 virtual Bool_t SetErrorMessages(Bool_t enable = kTRUE) = 0;
240 virtual Bool_t IsProcessLineLocked() const = 0;
241 virtual void SetProcessLineLock(Bool_t lock = kTRUE) = 0;
242 virtual const char *TypeName(const char *s) = 0;
243 virtual std::string ToString(const char *type, void *obj) = 0;
244
246 virtual void ForgetMutexState() = 0;
247
248 // All the functions below must be virtual with a dummy implementation
249 // These functions are redefined in TCling.
250
251 // Misc
252 virtual int DisplayClass(FILE * /* fout */,const char * /* name */,int /* base */,int /* start */) const {return 0;}
253 virtual int DisplayIncludePath(FILE * /* fout */) const {return 0;}
254 virtual void *FindSym(const char * /* entry */) const {return nullptr;}
255 virtual void GenericError(const char * /* error */) const {}
256 virtual Long_t GetExecByteCode() const {return 0;}
257 virtual const char *GetTopLevelMacroName() const {return nullptr;};
258 virtual const char *GetCurrentMacroName() const {return nullptr;};
259 virtual int GetSecurityError() const{return 0;}
260 virtual int LoadFile(const char * /* path */) const {return 0;}
261 virtual Bool_t LoadText(const char * /* text */) const {return kFALSE;}
262 virtual const char *MapCppName(const char*) const {return nullptr;}
263 virtual void SetAlloclockfunc(void (*)()) const {}
264 virtual void SetAllocunlockfunc(void (*)()) const {}
265 virtual int SetClassAutoLoading(int) const {return 0;}
266 int SetClassAutoloading(int a) const { return SetClassAutoLoading(a); } // Deprecated
267 virtual int SetClassAutoparsing(int) {return 0;};
268 virtual void SetErrmsgcallback(void * /* p */) const {}
269 /// \brief Report diagnostics to the ROOT error handler (see TError.h).
270 virtual void ReportDiagnosticsToErrorHandler(bool /*enable*/ = true) {}
271 virtual void SetTempLevel(int /* val */) const {}
272 virtual int UnloadFile(const char * /* path */) const {return 0;}
273
274 /// The created temporary must be deleted by the caller.
275 /// Deprecated! Please use MakeInterpreterValue().
277 return MakeInterpreterValue().release();
278 }
279 virtual std::unique_ptr<TInterpreterValue> MakeInterpreterValue() const { return nullptr; }
280 virtual void CodeComplete(const std::string&, size_t&,
281 std::vector<std::string>&) {}
282 virtual int Evaluate(const char*, TInterpreterValue&) {return 0;}
283
284 // core/meta helper functions.
287 virtual bool DiagnoseIfInterpreterException(const std::exception &e) const = 0;
288
290 virtual DeclId_t GetDeclId(CallFunc_t *info) const = 0;
291 virtual DeclId_t GetDeclId(ClassInfo_t *info) const = 0;
292 virtual DeclId_t GetDeclId(DataMemberInfo_t *info) const = 0;
293 virtual DeclId_t GetDeclId(FuncTempInfo_t *info) const = 0;
294 virtual DeclId_t GetDeclId(MethodInfo_t *info) const = 0;
295 virtual DeclId_t GetDeclId(TypedefInfo_t *info) const = 0;
296
297 virtual void SetDeclAttr(DeclId_t, const char* /* attribute */) = 0 ;
298
299 virtual DeclId_t GetDataMember(ClassInfo_t *cl, const char *name) const = 0;
300 virtual DeclId_t GetDataMemberAtAddr(const void *addr) const = 0;
301 virtual DeclId_t GetDataMemberWithValue(const void *ptrvalue) const = 0;
302 virtual DeclId_t GetEnum(TClass *cl, const char *name) const = 0;
303 virtual TEnum* CreateEnum(void *VD, TClass *cl) const = 0;
304 virtual void UpdateEnumConstants(TEnum* enumObj, TClass* cl) const = 0;
305 virtual void LoadEnums(TListOfEnums& cl) const = 0;
306 virtual DeclId_t GetFunction(ClassInfo_t *cl, const char *funcname) = 0;
307 virtual DeclId_t GetFunctionWithPrototype(ClassInfo_t *cl, const char* method, const char* proto, Bool_t objectIsConst = kFALSE, ROOT::EFunctionMatchMode mode = ROOT::kConversionMatch) = 0;
308 virtual DeclId_t GetFunctionWithValues(ClassInfo_t *cl, const char* method, const char* params, Bool_t objectIsConst = kFALSE) = 0;
309 virtual DeclId_t GetFunctionTemplate(ClassInfo_t *cl, const char *funcname) = 0;
310 virtual void GetFunctionOverloads(ClassInfo_t *cl, const char *funcname, std::vector<DeclId_t>& res) const = 0;
311 virtual void LoadFunctionTemplates(TClass* cl) const = 0;
312 virtual std::vector<std::string> GetUsingNamespaces(ClassInfo_t *cl) const = 0;
313
314 // CallFunc interface
315 virtual void CallFunc_Delete(CallFunc_t * /* func */) const {}
316 virtual void CallFunc_Exec(CallFunc_t * /* func */, void * /* address */) const {}
317 virtual void CallFunc_Exec(CallFunc_t * /* func */, void * /* address */, TInterpreterValue& /* val */) const {}
318 virtual void CallFunc_ExecWithReturn(CallFunc_t * /* func */, void * /* address */, void * /* ret */) const {}
319 virtual void CallFunc_ExecWithArgsAndReturn(CallFunc_t * /* func */, void * /* address */, const void* /* args */ [] = nullptr, int /*nargs*/ = 0, void * /* ret */ = nullptr) const {}
320 virtual Longptr_t CallFunc_ExecInt(CallFunc_t * /* func */, void * /* address */) const {return 0;}
321 virtual Long64_t CallFunc_ExecInt64(CallFunc_t * /* func */, void * /* address */) const {return 0;}
322 virtual Double_t CallFunc_ExecDouble(CallFunc_t * /* func */, void * /* address */) const {return 0;}
323 virtual CallFunc_t *CallFunc_Factory() const {return nullptr;}
324 virtual CallFunc_t *CallFunc_FactoryCopy(CallFunc_t * /* func */) const {return nullptr;}
325 virtual MethodInfo_t *CallFunc_FactoryMethod(CallFunc_t * /* func */) const {return nullptr;}
326 virtual void CallFunc_IgnoreExtraArgs(CallFunc_t * /*func */, bool /*ignore*/) const {}
327 virtual void CallFunc_Init(CallFunc_t * /* func */) const {}
328 virtual Bool_t CallFunc_IsValid(CallFunc_t * /* func */) const {return 0;}
329 virtual CallFuncIFacePtr_t CallFunc_IFacePtr(CallFunc_t * /* func */) const {return CallFuncIFacePtr_t();}
330 virtual void CallFunc_ResetArg(CallFunc_t * /* func */) const {}
331 virtual void CallFunc_SetArgArray(CallFunc_t * /* func */, Longptr_t * /* paramArr */, Int_t /* nparam */) const {}
332 virtual void CallFunc_SetArgs(CallFunc_t * /* func */, const char * /* param */) const {}
333
334 virtual void CallFunc_SetArg(CallFunc_t * /*func */, Long_t /* param */) const = 0;
335 virtual void CallFunc_SetArg(CallFunc_t * /*func */, ULong_t /* param */) const = 0;
336 virtual void CallFunc_SetArg(CallFunc_t * /* func */, Float_t /* param */) const = 0;
337 virtual void CallFunc_SetArg(CallFunc_t * /* func */, Double_t /* param */) const = 0;
338 virtual void CallFunc_SetArg(CallFunc_t * /* func */, Long64_t /* param */) const = 0;
339 virtual void CallFunc_SetArg(CallFunc_t * /* func */, ULong64_t /* param */) const = 0;
340
341 void CallFunc_SetArg(CallFunc_t * func, Char_t param) const { CallFunc_SetArg(func,(Longptr_t)param); }
342 void CallFunc_SetArg(CallFunc_t * func, Short_t param) const { CallFunc_SetArg(func,(Longptr_t)param); }
343 void CallFunc_SetArg(CallFunc_t * func, Int_t param) const { CallFunc_SetArg(func,(Longptr_t)param); }
344
345 void CallFunc_SetArg(CallFunc_t * func, UChar_t param) const { CallFunc_SetArg(func,(ULongptr_t)param); }
346 void CallFunc_SetArg(CallFunc_t * func, UShort_t param) const { CallFunc_SetArg(func,(ULongptr_t)param); }
347 void CallFunc_SetArg(CallFunc_t * func, UInt_t param) const { CallFunc_SetArg(func,(ULongptr_t)param); }
348
349 template <typename T>
350 void CallFunc_SetArgRef(CallFunc_t * func, T &param) const { CallFunc_SetArg(func,(ULongptr_t)&param); }
351
352 void CallFunc_SetArg(CallFunc_t *func, void *arg)
353 {
354 CallFunc_SetArg(func,(Longptr_t) arg);
355 }
356
357 template <typename T>
358 void CallFunc_SetArg(CallFunc_t *func, const T *arg)
359 {
360 CallFunc_SetArg(func,(Longptr_t) arg);
361 }
362
363 void CallFunc_SetArgImpl(CallFunc_t * /* func */)
364 {
365 }
366
367 template <typename U>
368 void CallFunc_SetArgImpl(CallFunc_t *func, const U& head)
369 {
370 CallFunc_SetArg(func, head);
371 }
372
373 template <typename U, typename... T>
374 void CallFunc_SetArgImpl(CallFunc_t *func, const U& head, const T&... tail)
375 {
376 CallFunc_SetArg(func, head);
377 CallFunc_SetArgImpl(func, tail...);
378 }
379
380 template <typename... T>
381 void CallFunc_SetArguments(CallFunc_t *func, const T&... args)
382 {
384
385 CallFunc_ResetArg(func);
386 CallFunc_SetArgImpl(func,args...);
387 }
388
389 virtual void CallFunc_SetFunc(CallFunc_t * /* func */, ClassInfo_t * /* info */, const char * /* method */, const char * /* params */, bool /* objectIsConst */, Longptr_t * /* Offset */) const {}
390 virtual void CallFunc_SetFunc(CallFunc_t * /* func */, ClassInfo_t * /* info */, const char * /* method */, const char * /* params */, Longptr_t * /* Offset */) const {}
391 virtual void CallFunc_SetFunc(CallFunc_t * /* func */, MethodInfo_t * /* info */) const {}
392 virtual void CallFunc_SetFuncProto(CallFunc_t * /* func */, ClassInfo_t * /* info */, const char * /* method */, const char * /* proto */, Longptr_t * /* Offset */, ROOT::EFunctionMatchMode /* mode */ = ROOT::kConversionMatch) const {}
393 virtual void CallFunc_SetFuncProto(CallFunc_t * /* func */, ClassInfo_t * /* info */, const char * /* method */, const char * /* proto */, bool /* objectIsConst */, Longptr_t * /* Offset */, ROOT::EFunctionMatchMode /* mode */ = ROOT::kConversionMatch) const {}
394 virtual void CallFunc_SetFuncProto(CallFunc_t* func, ClassInfo_t* info, const char* method, const std::vector<TypeInfo_t*> &proto, Longptr_t* Offset, ROOT::EFunctionMatchMode mode = ROOT::kConversionMatch) const = 0;
395 virtual void CallFunc_SetFuncProto(CallFunc_t* func, ClassInfo_t* info, const char* method, const std::vector<TypeInfo_t*> &proto, bool objectIsConst, Longptr_t* Offset, ROOT::EFunctionMatchMode mode = ROOT::kConversionMatch) const = 0;
396
397 virtual std::string CallFunc_GetWrapperCode(CallFunc_t *func) const = 0;
398
399 // ClassInfo interface
400 virtual Bool_t ClassInfo_Contains(ClassInfo_t *info, DeclId_t decl) const = 0;
401 virtual Long_t ClassInfo_ClassProperty(ClassInfo_t * /* info */) const {return 0;}
402 virtual void ClassInfo_Delete(ClassInfo_t * /* info */) const {}
403 virtual void ClassInfo_Delete(ClassInfo_t * /* info */, void * /* arena */) const {}
404 virtual void ClassInfo_DeleteArray(ClassInfo_t * /* info */, void * /* arena */, bool /* dtorOnly */) const {}
405 virtual void ClassInfo_Destruct(ClassInfo_t * /* info */, void * /* arena */) const {}
406 virtual ClassInfo_t *ClassInfo_Factory(Bool_t /*all*/ = kTRUE) const = 0;
407 virtual ClassInfo_t *ClassInfo_Factory(ClassInfo_t * /* cl */) const = 0;
408 virtual ClassInfo_t *ClassInfo_Factory(const char * /* name */) const = 0;
409 virtual ClassInfo_t *ClassInfo_Factory(DeclId_t declid) const = 0;
410 virtual Longptr_t ClassInfo_GetBaseOffset(ClassInfo_t* /* fromDerived */,
411 ClassInfo_t* /* toBase */, void* /* address */ = nullptr, bool /*isderived*/ = true) const {return 0;}
412 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;}
413 virtual Bool_t ClassInfo_HasDefaultConstructor(ClassInfo_t * /* info */, Bool_t = kFALSE) const {return kFALSE;}
414 virtual Bool_t ClassInfo_HasMethod(ClassInfo_t * /* info */, const char * /* name */) const {return kFALSE;}
415 virtual void ClassInfo_Init(ClassInfo_t * /* info */, const char * /* funcname */) const {}
416 virtual void ClassInfo_Init(ClassInfo_t * /* info */, int /* tagnum */) const {}
417 virtual Bool_t ClassInfo_IsBase(ClassInfo_t * /* info */, const char * /* name */) const {return 0;}
418 virtual Bool_t ClassInfo_IsEnum(const char * /* name */) const {return 0;}
419 virtual Bool_t ClassInfo_IsScopedEnum(ClassInfo_t * /* info */) const {return 0;}
420 virtual EDataType ClassInfo_GetUnderlyingType(ClassInfo_t * /* info */) const {return kNumDataTypes;}
421 virtual Bool_t ClassInfo_IsLoaded(ClassInfo_t * /* info */) const {return 0;}
422 virtual Bool_t ClassInfo_IsValid(ClassInfo_t * /* info */) const {return 0;}
423 virtual Bool_t ClassInfo_IsValidMethod(ClassInfo_t * /* info */, const char * /* method */,const char * /* proto */, Longptr_t * /* offset */, ROOT::EFunctionMatchMode /* mode */ = ROOT::kConversionMatch) const {return 0;}
424 virtual Bool_t ClassInfo_IsValidMethod(ClassInfo_t * /* info */, const char * /* method */,const char * /* proto */, Bool_t /* objectIsConst */, Longptr_t * /* offset */, ROOT::EFunctionMatchMode /* mode */ = ROOT::kConversionMatch) const {return 0;}
425 virtual int ClassInfo_Next(ClassInfo_t * /* info */) const {return 0;}
426 virtual void *ClassInfo_New(ClassInfo_t * /* info */) const {return nullptr;}
427 virtual void *ClassInfo_New(ClassInfo_t * /* info */, int /* n */) const {return nullptr;}
428 virtual void *ClassInfo_New(ClassInfo_t * /* info */, int /* n */, void * /* arena */) const {return nullptr;}
429 virtual void *ClassInfo_New(ClassInfo_t * /* info */, void * /* arena */) const {return nullptr;}
430 virtual Long_t ClassInfo_Property(ClassInfo_t * /* info */) const {return 0;}
431 virtual int ClassInfo_Size(ClassInfo_t * /* info */) const {return 0;}
432 virtual Longptr_t ClassInfo_Tagnum(ClassInfo_t * /* info */) const {return 0;}
433 virtual const char *ClassInfo_FileName(ClassInfo_t * /* info */) const {return nullptr;}
434 virtual const char *ClassInfo_FullName(ClassInfo_t * /* info */) const {return nullptr;}
435 virtual const char *ClassInfo_Name(ClassInfo_t * /* info */) const {return nullptr;}
436 virtual const char *ClassInfo_Title(ClassInfo_t * /* info */) const {return nullptr;}
437 virtual const char *ClassInfo_TmpltName(ClassInfo_t * /* info */) const {return nullptr;}
438
439
440 // BaseClassInfo interface
441 virtual void BaseClassInfo_Delete(BaseClassInfo_t * /* bcinfo */) const {}
442 virtual BaseClassInfo_t *BaseClassInfo_Factory(ClassInfo_t * /* info */) const {return nullptr;}
443 virtual BaseClassInfo_t *BaseClassInfo_Factory(ClassInfo_t* /* derived */,
444 ClassInfo_t* /* base */) const {return nullptr;}
445 virtual int BaseClassInfo_Next(BaseClassInfo_t * /* bcinfo */) const {return 0;}
446 virtual int BaseClassInfo_Next(BaseClassInfo_t * /* bcinfo */, int /* onlyDirect */) const {return 0;}
447 virtual Longptr_t BaseClassInfo_Offset(BaseClassInfo_t * /* toBaseClassInfo */, void* /* address */ = nullptr /*default for non-virtual*/, bool /*isderived*/ = true /*default for non-virtual*/) const {return 0;}
448 virtual Long_t BaseClassInfo_Property(BaseClassInfo_t * /* bcinfo */) const {return 0;}
449 virtual Longptr_t BaseClassInfo_Tagnum(BaseClassInfo_t * /* bcinfo */) const {return 0;}
450 virtual ClassInfo_t*BaseClassInfo_ClassInfo(BaseClassInfo_t * /* bcinfo */) const = 0;
451 virtual const char *BaseClassInfo_FullName(BaseClassInfo_t * /* bcinfo */) const {return nullptr;}
452 virtual const char *BaseClassInfo_Name(BaseClassInfo_t * /* bcinfo */) const {return nullptr;}
453 virtual const char *BaseClassInfo_TmpltName(BaseClassInfo_t * /* bcinfo */) const {return nullptr;}
454
455 // DataMemberInfo interface
456 virtual int DataMemberInfo_ArrayDim(DataMemberInfo_t * /* dminfo */) const {return 0;}
457 virtual void DataMemberInfo_Delete(DataMemberInfo_t * /* dminfo */) const {}
458 virtual DataMemberInfo_t *DataMemberInfo_Factory(ClassInfo_t * /* clinfo */, TDictionary::EMemberSelection /*selection*/) const {return nullptr;}
459 virtual DataMemberInfo_t *DataMemberInfo_Factory(DeclId_t declid, ClassInfo_t* clinfo) const = 0;
460 virtual DataMemberInfo_t *DataMemberInfo_FactoryCopy(DataMemberInfo_t * /* dminfo */) const {return nullptr;}
461 virtual Bool_t DataMemberInfo_IsValid(DataMemberInfo_t * /* dminfo */) const {return 0;}
462 virtual int DataMemberInfo_MaxIndex(DataMemberInfo_t * /* dminfo */, Int_t /* dim */) const {return 0;}
463 virtual int DataMemberInfo_Next(DataMemberInfo_t * /* dminfo */) const {return 0;}
464 virtual Longptr_t DataMemberInfo_Offset(DataMemberInfo_t * /* dminfo */) const {return 0;}
465 virtual Long_t DataMemberInfo_Property(DataMemberInfo_t * /* dminfo */) const {return 0;}
466 virtual Long_t DataMemberInfo_TypeProperty(DataMemberInfo_t * /* dminfo */) const {return 0;}
467 virtual int DataMemberInfo_TypeSize(DataMemberInfo_t * /* dminfo */) const {return 0;}
468 virtual const char *DataMemberInfo_TypeName(DataMemberInfo_t * /* dminfo */) const {return nullptr;}
469 virtual const char *DataMemberInfo_TypeTrueName(DataMemberInfo_t * /* dminfo */) const {return nullptr;}
470 virtual const char *DataMemberInfo_Name(DataMemberInfo_t * /* dminfo */) const {return nullptr;}
471 virtual const char *DataMemberInfo_Title(DataMemberInfo_t * /* dminfo */) const {return nullptr;}
472 virtual const char *DataMemberInfo_ValidArrayIndex(DataMemberInfo_t * /* dminfo */) const {return nullptr;}
473
474 // Function Template interface
475 virtual void FuncTempInfo_Delete(FuncTempInfo_t * /* ft_info */) const = 0;
476 virtual FuncTempInfo_t *FuncTempInfo_Factory(DeclId_t declid) const = 0;
477 virtual FuncTempInfo_t *FuncTempInfo_FactoryCopy(FuncTempInfo_t * /* ft_info */) const = 0;
478 virtual Bool_t FuncTempInfo_IsValid(FuncTempInfo_t * /* ft_info */) const = 0;
479 virtual UInt_t FuncTempInfo_TemplateNargs(FuncTempInfo_t * /* ft_info */) const = 0;
480 virtual UInt_t FuncTempInfo_TemplateMinReqArgs(FuncTempInfo_t * /* ft_info */) const = 0;
481 virtual Long_t FuncTempInfo_Property(FuncTempInfo_t * /* ft_info */) const = 0;
482 virtual Long_t FuncTempInfo_ExtraProperty(FuncTempInfo_t * /* ft_info */) const = 0;
483 virtual void FuncTempInfo_Name(FuncTempInfo_t * /* ft_info */, TString &name) const = 0;
484 virtual void FuncTempInfo_Title(FuncTempInfo_t * /* ft_info */, TString &title) const = 0;
485
486 // MethodInfo interface
487 virtual void MethodInfo_CreateSignature(MethodInfo_t * /* minfo */, TString & /* signature */) const {}
488 virtual void MethodInfo_Delete(MethodInfo_t * /* minfo */) const {}
489 virtual MethodInfo_t *MethodInfo_Factory() const {return nullptr;}
490 virtual MethodInfo_t *MethodInfo_Factory(ClassInfo_t * /*clinfo*/) const {return nullptr;}
491 virtual MethodInfo_t *MethodInfo_Factory(DeclId_t declid) const = 0;
492 virtual MethodInfo_t *MethodInfo_FactoryCopy(MethodInfo_t * /* minfo */) const {return nullptr;}
493 virtual void *MethodInfo_InterfaceMethod(MethodInfo_t * /* minfo */) const {return nullptr;}
494 virtual Bool_t MethodInfo_IsValid(MethodInfo_t * /* minfo */) const {return 0;}
495 virtual int MethodInfo_NArg(MethodInfo_t * /* minfo */) const {return 0;}
496 virtual int MethodInfo_NDefaultArg(MethodInfo_t * /* minfo */) const {return 0;}
497 virtual int MethodInfo_Next(MethodInfo_t * /* minfo */) const {return 0;}
498 virtual Long_t MethodInfo_Property(MethodInfo_t * /* minfo */) const = 0;
499 virtual Long_t MethodInfo_ExtraProperty(MethodInfo_t * /* minfo */) const = 0;
500 virtual TypeInfo_t *MethodInfo_Type(MethodInfo_t * /* minfo */) const {return nullptr;}
501 virtual EReturnType MethodInfo_MethodCallReturnType(MethodInfo_t* minfo) const = 0;
502 virtual const char *MethodInfo_GetMangledName(MethodInfo_t * /* minfo */) const {return nullptr;}
503 virtual const char *MethodInfo_GetPrototype(MethodInfo_t * /* minfo */) const {return nullptr;}
504 virtual const char *MethodInfo_Name(MethodInfo_t * /* minfo */) const {return nullptr;}
505 virtual const char *MethodInfo_TypeName(MethodInfo_t * /* minfo */) const {return nullptr;}
506 virtual std::string MethodInfo_TypeNormalizedName(MethodInfo_t * /* minfo */) const {return "";}
507 virtual const char *MethodInfo_Title(MethodInfo_t * /* minfo */) const {return nullptr;}
508
509 // MethodArgInfo interface
510 virtual void MethodArgInfo_Delete(MethodArgInfo_t * /* marginfo */) const {}
511 virtual MethodArgInfo_t *MethodArgInfo_Factory() const {return nullptr;}
512 virtual MethodArgInfo_t *MethodArgInfo_Factory(MethodInfo_t * /*minfo*/) const {return nullptr;}
513 virtual MethodArgInfo_t *MethodArgInfo_FactoryCopy(MethodArgInfo_t * /* marginfo */) const {return nullptr;}
514 virtual Bool_t MethodArgInfo_IsValid(MethodArgInfo_t * /* marginfo */) const {return 0;}
515 virtual int MethodArgInfo_Next(MethodArgInfo_t * /* marginfo */) const {return 0;}
516 virtual Long_t MethodArgInfo_Property(MethodArgInfo_t * /* marginfo */) const {return 0;}
517 virtual const char *MethodArgInfo_DefaultValue(MethodArgInfo_t * /* marginfo */) const {return nullptr;}
518 virtual const char *MethodArgInfo_Name(MethodArgInfo_t * /* marginfo */) const {return nullptr;}
519 virtual const char *MethodArgInfo_TypeName(MethodArgInfo_t * /* marginfo */) const {return nullptr;}
520 virtual std::string MethodArgInfo_TypeNormalizedName(MethodArgInfo_t * /* marginfo */) const = 0;
521 virtual TypeInfo_t *MethodArgInfo_TypeInfo(MethodArgInfo_t * /* marginfo */) const {return nullptr;}
522
523
524 // TypeInfo interface
525 virtual void TypeInfo_Delete(TypeInfo_t * /* tinfo */) const {}
526 virtual TypeInfo_t *TypeInfo_Factory() const {return nullptr;}
527 virtual TypeInfo_t *TypeInfo_Factory(const char* /* name */) const {return nullptr;}
528 virtual TypeInfo_t *TypeInfo_FactoryCopy(TypeInfo_t * /* tinfo */) const {return nullptr;}
529 virtual void TypeInfo_Init(TypeInfo_t * /* tinfo */, const char * /* funcname */) const {}
530 virtual Bool_t TypeInfo_IsValid(TypeInfo_t * /* tinfo */) const {return 0;}
531 virtual const char *TypeInfo_Name(TypeInfo_t * /* info */) const {return nullptr;}
532 virtual Long_t TypeInfo_Property(TypeInfo_t * /* tinfo */) const {return 0;}
533 virtual int TypeInfo_RefType(TypeInfo_t * /* tinfo */) const {return 0;}
534 virtual int TypeInfo_Size(TypeInfo_t * /* tinfo */) const {return 0;}
535 virtual const char *TypeInfo_TrueName(TypeInfo_t * /* tinfo */) const {return nullptr;}
536 virtual void *TypeInfo_QualTypePtr(TypeInfo_t * /* tinfo */) const {return nullptr;}
537
538
539 // TypedefInfo interface
540 virtual void TypedefInfo_Delete(TypedefInfo_t * /* tinfo */) const {}
541 virtual TypedefInfo_t *TypedefInfo_Factory() const {return nullptr;}
542 virtual TypedefInfo_t *TypedefInfo_Factory(const char *) const {return nullptr;}
543 virtual TypedefInfo_t *TypedefInfo_FactoryCopy(TypedefInfo_t * /* tinfo */) const {return nullptr;}
544 virtual void TypedefInfo_Init(TypedefInfo_t * /* tinfo */, const char * /* funcname */) const {}
545 virtual Bool_t TypedefInfo_IsValid(TypedefInfo_t * /* tinfo */) const {return 0;}
546 virtual int TypedefInfo_Next(TypedefInfo_t* /*tinfo*/) const {return 0;}
547 virtual Long_t TypedefInfo_Property(TypedefInfo_t * /* tinfo */) const {return 0;}
548 virtual int TypedefInfo_Size(TypedefInfo_t * /* tinfo */) const {return 0;}
549 virtual const char *TypedefInfo_TrueName(TypedefInfo_t * /* tinfo */) const {return nullptr;}
550 virtual const char *TypedefInfo_Name(TypedefInfo_t * /* tinfo */) const {return nullptr;}
551 virtual const char *TypedefInfo_Title(TypedefInfo_t * /* tinfo */) const {return nullptr;}
552
553 // QualType Opaque Ptr interface
554 virtual Bool_t IsSameType(const void * /* QualTypePtr1 */, const void * /* QualTypePtr2 */) const {return 0;}
555 virtual Bool_t IsIntegerType(const void * /* QualTypePtr */) const {return 0;}
556 virtual Bool_t IsSignedIntegerType(const void * /* QualTypePtr */) const {return 0;}
557 virtual Bool_t IsUnsignedIntegerType(const void * /* QualTypePtr */) const {return 0;}
558 virtual Bool_t IsFloatingType(const void * /* QualTypePtr */) const {return 0;}
559 virtual Bool_t IsPointerType(const void * /* QualTypePtr */) const {return 0;}
560 virtual Bool_t IsVoidPointerType(const void * /* QualTypePtr */) const {return 0;}
561
562 // FunctionDecl interface
563 virtual Bool_t FunctionDeclId_IsMethod(DeclId_t /* fdeclid */) const {return 0;}
564
565 static TInterpreter *Instance();
566
567 ClassDefOverride(TInterpreter,0) //ABC defining interface to generic interpreter
568};
569
570
571typedef TInterpreter *CreateInterpreter_t(void* shlibHandle, const char* argv[]);
573
574#define gInterpreter (TInterpreter::Instance())
576
578 fLockGuard(mutex)
579{
580 if (gCoreMutex)
582}
584{
585 if (gCoreMutex)
587}
588
589#endif
#define R__EXTERN
Definition DllImport.h:26
#define a(i)
Definition RSha256.hxx:99
#define e(i)
Definition RSha256.hxx:103
unsigned short UShort_t
Definition RtypesCore.h:40
long Longptr_t
Definition RtypesCore.h:75
unsigned char UChar_t
Definition RtypesCore.h:38
char Char_t
Definition RtypesCore.h:37
unsigned long ULong_t
Definition RtypesCore.h:55
long Long_t
Definition RtypesCore.h:54
unsigned long ULongptr_t
Definition RtypesCore.h:76
float Float_t
Definition RtypesCore.h:57
short Short_t
Definition RtypesCore.h:39
constexpr Bool_t kFALSE
Definition RtypesCore.h:94
long long Long64_t
Definition RtypesCore.h:69
unsigned long long ULong64_t
Definition RtypesCore.h:70
constexpr Bool_t kTRUE
Definition RtypesCore.h:93
TClass *(* DictFuncPtr_t)()
Definition Rtypes.h:85
#define ClassDefOverride(name, id)
Definition Rtypes.h:346
EDataType
Definition TDataType.h:28
@ kNumDataTypes
Definition TDataType.h:40
constexpr Int_t kFatal
Definition TError.h:50
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 filename
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
Option_t Option_t TPoint TPoint const char mode
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 Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
char name[80]
Definition TGX11.cxx:110
R__EXTERN TVirtualMutex * gInterpreterMutex
TInterpreter * CreateInterpreter_t(void *shlibHandle, const char *argv[])
R__EXTERN TInterpreter * gCling
void * DestroyInterpreter_t(TInterpreter *)
#define R__LOCKGUARD(mutex)
const char * proto
Definition civetweb.c:17535
TClass instances represent classes, structs and namespaces in the ROOT type system.
Definition TClass.h:81
EMemberSelection
Kinds of members to include in lists.
const void * DeclId_t
The TEnum class implements the enum type.
Definition TEnum.h:33
The TEnv class reads config files, by default named .rootrc.
Definition TEnv.h:124
Global functions class (global functions are obtained from CINT).
Definition TFunction.h:30
SuspendAutoLoadingRAII(TInterpreter *interp)
SuspendAutoParsing(TInterpreter *where, Bool_t value=kTRUE)
This class defines an abstract interface to a generic command line interpreter.
virtual TypedefInfo_t * TypedefInfo_Factory() const
virtual bool RegisterPrebuiltModulePath(const std::string &FullPath, const std::string &ModuleMapName="module.modulemap") const =0
virtual std::string ToString(const char *type, void *obj)=0
virtual int MethodInfo_NArg(MethodInfo_t *) const
virtual Bool_t ClassInfo_HasMethod(ClassInfo_t *, const char *) const
virtual Long_t MethodInfo_ExtraProperty(MethodInfo_t *) const =0
virtual DataMemberInfo_t * DataMemberInfo_FactoryCopy(DataMemberInfo_t *) const
virtual void ClassInfo_Delete(ClassInfo_t *, void *) const
virtual void * GetAutoLoadCallBack() const
virtual void InspectMembers(TMemberInspector &, const void *obj, const TClass *cl, Bool_t isTransient)=0
virtual const char * TypeInfo_TrueName(TypeInfo_t *) const
virtual TypedefInfo_t * TypedefInfo_FactoryCopy(TypedefInfo_t *) const
virtual char * GetPrompt()=0
class std::map< std::string, std::string > MembersMap_t
virtual void ClearStack()=0
virtual void CallFunc_SetArgs(CallFunc_t *, const char *) const
virtual const char * DataMemberInfo_Name(DataMemberInfo_t *) const
virtual void SetAllocunlockfunc(void(*)()) const
virtual int UnloadFile(const char *) const
virtual const char * DataMemberInfo_TypeName(DataMemberInfo_t *) const
virtual void SetTempLevel(int) const
virtual Bool_t IsFloatingType(const void *) const
virtual void CallFunc_SetFunc(CallFunc_t *, MethodInfo_t *) const
virtual const char * DataMemberInfo_ValidArrayIndex(DataMemberInfo_t *) const
virtual DeclId_t GetFunctionTemplate(ClassInfo_t *cl, const char *funcname)=0
virtual void UpdateListOfGlobalFunctions()=0
virtual void UpdateListOfGlobals()=0
virtual int DataMemberInfo_TypeSize(DataMemberInfo_t *) const
virtual int ClassInfo_Next(ClassInfo_t *) const
virtual void CallFunc_IgnoreExtraArgs(CallFunc_t *, bool) const
virtual const char * BaseClassInfo_TmpltName(BaseClassInfo_t *) const
virtual const char * MethodArgInfo_Name(MethodArgInfo_t *) const
virtual void TypeInfo_Init(TypeInfo_t *, const char *) const
virtual TypeInfo_t * MethodArgInfo_TypeInfo(MethodArgInfo_t *) const
virtual Long_t FuncTempInfo_Property(FuncTempInfo_t *) const =0
virtual void * ClassInfo_New(ClassInfo_t *) const
virtual Bool_t ClassInfo_IsValid(ClassInfo_t *) const
virtual std::string MethodArgInfo_TypeNormalizedName(MethodArgInfo_t *) const =0
virtual Int_t DeleteVariable(const char *name)=0
virtual void GenericError(const char *) const
virtual void SaveGlobalsContext()=0
virtual Longptr_t CallFunc_ExecInt(CallFunc_t *, void *) const
virtual void ForgetMutexState()=0
virtual const char * TypedefInfo_TrueName(TypedefInfo_t *) const
virtual int BaseClassInfo_Next(BaseClassInfo_t *, int) const
virtual Longptr_t ProcessLine(const char *line, EErrorCode *error=nullptr)=0
int SetClassAutoloading(int a) const
virtual Int_t GenerateDictionary(const char *classes, const char *includes=nullptr, const char *options=nullptr)=0
virtual Long_t TypedefInfo_Property(TypedefInfo_t *) const
virtual void CallFunc_SetArg(CallFunc_t *, Double_t) const =0
virtual Bool_t HasPCMForLibrary(const char *libname) const =0
virtual void CallFunc_SetFuncProto(CallFunc_t *func, ClassInfo_t *info, const char *method, const std::vector< TypeInfo_t * > &proto, Longptr_t *Offset, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch) const =0
virtual const char * GetSharedLibDeps(const char *lib, bool tryDyld=false)=0
virtual DeclId_t GetFunction(ClassInfo_t *cl, const char *funcname)=0
void Execute(TMethod *method, TObjArray *params, int *error=nullptr) override=0
Execute method on this object with parameters stored in the TObjArray.
virtual Int_t AutoParse(const char *cls)=0
virtual const char * GetIncludePath()=0
virtual void CodeComplete(const std::string &, size_t &, std::vector< std::string > &)
virtual Bool_t TypedefInfo_IsValid(TypedefInfo_t *) const
virtual Int_t AutoLoad(const std::type_info &typeinfo, Bool_t knowDictNotLoaded=kFALSE)=0
virtual const char * TypeInfo_Name(TypeInfo_t *) const
virtual void LoadMacro(const char *filename, EErrorCode *error=nullptr)=0
virtual void ClassInfo_Delete(ClassInfo_t *) const
void CallFunc_SetArguments(CallFunc_t *func, const T &... args)
virtual void CallFunc_ExecWithReturn(CallFunc_t *, void *, void *) const
virtual TClass * GetClass(const std::type_info &typeinfo, Bool_t load) const =0
void CallFunc_SetArg(CallFunc_t *func, void *arg)
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, Bool_t hasCxxModule=false)=0
void CallFunc_SetArg(CallFunc_t *func, Char_t param) const
virtual const char * MethodArgInfo_DefaultValue(MethodArgInfo_t *) const
virtual bool DiagnoseIfInterpreterException(const std::exception &e) const =0
virtual EReturnType MethodCallReturnType(TFunction *func) const =0
virtual void CallFunc_ExecWithArgsAndReturn(CallFunc_t *, void *, const void *[]=nullptr, int=0, void *=nullptr) const
virtual void TypeInfo_Delete(TypeInfo_t *) const
virtual void CallFunc_ResetArg(CallFunc_t *) const
virtual void EndOfLineAction()=0
virtual bool IsValid() const =0
virtual void ResetGlobals()=0
virtual Bool_t ClassInfo_IsBase(ClassInfo_t *, const char *) const
virtual const char * MethodInfo_Title(MethodInfo_t *) const
TInterpreterValue * CreateTemporary() const
The created temporary must be deleted by the caller.
virtual const char * MethodInfo_GetPrototype(MethodInfo_t *) const
virtual void ClassInfo_DeleteArray(ClassInfo_t *, void *, bool) const
int(* AutoLoadCallBack_t)(const char *)
virtual Int_t UnloadAllSharedLibraryMaps()=0
virtual Long_t FuncTempInfo_ExtraProperty(FuncTempInfo_t *) const =0
virtual TString GetMangledName(TClass *cl, const char *method, const char *params, Bool_t objectIsConst=kFALSE)=0
virtual void CallFunc_SetFuncProto(CallFunc_t *, ClassInfo_t *, const char *, const char *, Longptr_t *, ROOT::EFunctionMatchMode=ROOT::kConversionMatch) const
virtual void CreateListOfDataMembers(TClass *cl) const =0
virtual TypeInfo_t * MethodInfo_Type(MethodInfo_t *) const
virtual void * ClassInfo_New(ClassInfo_t *, void *) const
virtual void CallFunc_SetFunc(CallFunc_t *, ClassInfo_t *, const char *, const char *, Longptr_t *) const
virtual int MethodArgInfo_Next(MethodArgInfo_t *) const
virtual void MethodInfo_Delete(MethodInfo_t *) const
virtual void UnRegisterTClassUpdate(const TClass *oldcl)=0
virtual TEnv * GetMapfile() const
virtual BaseClassInfo_t * BaseClassInfo_Factory(ClassInfo_t *, ClassInfo_t *) const
virtual UInt_t FuncTempInfo_TemplateMinReqArgs(FuncTempInfo_t *) const =0
virtual DeclId_t GetDeclId(FuncTempInfo_t *info) const =0
virtual TypedefInfo_t * TypedefInfo_Factory(const char *) const
virtual void AddIncludePath(const char *path)=0
virtual void ResetGlobalVar(void *obj)=0
virtual Bool_t IsLoaded(const char *filename) const =0
virtual const char * ClassInfo_TmpltName(ClassInfo_t *) const
virtual Bool_t IsPointerType(const void *) const
virtual void SetProcessLineLock(Bool_t lock=kTRUE)=0
virtual Int_t Load(const char *filenam, Bool_t system=kFALSE)=0
virtual TypeInfo_t * TypeInfo_Factory(const char *) const
virtual std::string CallFunc_GetWrapperCode(CallFunc_t *func) const =0
virtual Long_t ClassInfo_Property(ClassInfo_t *) const
virtual int Evaluate(const char *, TInterpreterValue &)
void CallFunc_SetArg(CallFunc_t *func, Int_t param) const
virtual TypeInfo_t * TypeInfo_Factory() const
virtual int MethodInfo_NDefaultArg(MethodInfo_t *) const
virtual void LoadFunctionTemplates(TClass *cl) const =0
virtual Bool_t IsUnsignedIntegerType(const void *) const
virtual Bool_t FunctionDeclId_IsMethod(DeclId_t) const
virtual Longptr_t DataMemberInfo_Offset(DataMemberInfo_t *) const
virtual ClassInfo_t * ClassInfo_Factory(const char *) const =0
virtual void TypedefInfo_Delete(TypedefInfo_t *) const
virtual void CallFunc_Exec(CallFunc_t *, void *) const
virtual Bool_t MethodArgInfo_IsValid(MethodArgInfo_t *) const
virtual void CallFunc_SetArg(CallFunc_t *, Long64_t) const =0
virtual ECheckClassInfo CheckClassInfo(const char *name, Bool_t autoload, Bool_t isClassOrNamespaceOnly=kFALSE)=0
virtual const char * BaseClassInfo_Name(BaseClassInfo_t *) const
virtual const char * MethodInfo_TypeName(MethodInfo_t *) const
virtual MethodInfo_t * MethodInfo_Factory(DeclId_t declid) const =0
virtual void PrintIntro()=0
virtual int DisplayIncludePath(FILE *) const
virtual void UpdateListOfMethods(TClass *cl) const =0
virtual void CreateListOfMethodArgs(TFunction *m) const =0
void CallFunc_SetArgRef(CallFunc_t *func, T &param) const
virtual int LoadFile(const char *) const
virtual UInt_t FuncTempInfo_TemplateNargs(FuncTempInfo_t *) const =0
virtual int DisplayClass(FILE *, const char *, int, int) const
void CallFunc_SetArgImpl(CallFunc_t *func, const U &head, const T &... tail)
virtual void SetClassInfo(TClass *cl, Bool_t reload=kFALSE, Bool_t silent=kFALSE)=0
virtual const char * ClassInfo_Name(ClassInfo_t *) const
virtual Int_t UnloadLibraryMap(const char *library)=0
virtual int ClassInfo_Size(ClassInfo_t *) const
virtual const char * ClassInfo_FullName(ClassInfo_t *) const
virtual int SetClassAutoLoading(int) const
virtual int TypedefInfo_Next(TypedefInfo_t *) const
virtual void RewindDictionary()=0
virtual Bool_t DataMemberInfo_IsValid(DataMemberInfo_t *) const
virtual MethodArgInfo_t * MethodArgInfo_Factory() const
virtual DeclId_t GetDeclId(DataMemberInfo_t *info) const =0
virtual CallFunc_t * CallFunc_Factory() const
virtual void * MethodInfo_InterfaceMethod(MethodInfo_t *) const
virtual Int_t AutoLoad(const char *classname, Bool_t knowDictNotLoaded=kFALSE)=0
virtual const char * TypedefInfo_Name(TypedefInfo_t *) const
virtual EDataType ClassInfo_GetUnderlyingType(ClassInfo_t *) const
virtual Bool_t IsSameType(const void *, const void *) const
virtual int GetSecurityError() const
virtual void CallFunc_Init(CallFunc_t *) const
virtual EReturnType MethodInfo_MethodCallReturnType(MethodInfo_t *minfo) const =0
virtual void ResetAll()=0
virtual const char * ClassInfo_Title(ClassInfo_t *) const
virtual void Reset()=0
virtual Bool_t Declare(const char *code)=0
virtual FuncTempInfo_t * FuncTempInfo_FactoryCopy(FuncTempInfo_t *) const =0
virtual Long_t DataMemberInfo_TypeProperty(DataMemberInfo_t *) const
virtual Bool_t IsErrorMessagesEnabled() const =0
virtual int DataMemberInfo_Next(DataMemberInfo_t *) const
virtual void BaseClassInfo_Delete(BaseClassInfo_t *) const
virtual ClassInfo_t * ClassInfo_Factory(Bool_t=kTRUE) const =0
virtual void * SetAutoLoadCallBack(void *)
virtual Bool_t CheckClassTemplate(const char *name)=0
virtual Long_t MethodArgInfo_Property(MethodArgInfo_t *) const
virtual Bool_t IsSignedIntegerType(const void *) const
virtual Longptr_t ExecuteMacro(const char *filename, EErrorCode *error=nullptr)=0
virtual Bool_t IsVoidPointerType(const void *) const
virtual Bool_t ClassInfo_Contains(ClassInfo_t *info, DeclId_t decl) const =0
virtual DataMemberInfo_t * DataMemberInfo_Factory(ClassInfo_t *, TDictionary::EMemberSelection) const
virtual Bool_t IsAutoParsingSuspended() const =0
virtual DeclId_t GetEnum(TClass *cl, const char *name) const =0
virtual void MethodArgInfo_Delete(MethodArgInfo_t *) const
virtual const char * ClassInfo_FileName(ClassInfo_t *) const
virtual void * ClassInfo_New(ClassInfo_t *, int, void *) const
virtual Long_t TypeInfo_Property(TypeInfo_t *) const
virtual int SetClassAutoparsing(int)
virtual void CallFunc_SetFuncProto(CallFunc_t *, ClassInfo_t *, const char *, const char *, bool, Longptr_t *, ROOT::EFunctionMatchMode=ROOT::kConversionMatch) const
virtual void SnapshotMutexState(ROOT::TVirtualRWMutex *mtx)=0
virtual MethodInfo_t * MethodInfo_Factory(ClassInfo_t *) const
virtual void CreateListOfMethods(TClass *cl) const =0
virtual int TypeInfo_Size(TypeInfo_t *) const
virtual MethodInfo_t * MethodInfo_FactoryCopy(MethodInfo_t *) const
virtual void Execute(TObject *obj, TClass *cl, TMethod *method, TObjArray *params, int *error=nullptr)=0
virtual void SetGetline(const char *(*getlineFunc)(const char *prompt), void(*histaddFunc)(const char *line))=0
virtual Bool_t ClassInfo_IsValidMethod(ClassInfo_t *, const char *, const char *, Bool_t, Longptr_t *, ROOT::EFunctionMatchMode=ROOT::kConversionMatch) const
virtual const char * MethodInfo_Name(MethodInfo_t *) const
virtual int ClassInfo_GetMethodNArg(ClassInfo_t *, const char *, const char *, Bool_t=false, ROOT::EFunctionMatchMode=ROOT::kConversionMatch) const
virtual void UpdateListOfTypes()=0
virtual DataMemberInfo_t * DataMemberInfo_Factory(DeclId_t declid, ClassInfo_t *clinfo) const =0
virtual const char * GetClassSharedLibs(const char *cls, bool skipCore=true)=0
virtual MethodArgInfo_t * MethodArgInfo_FactoryCopy(MethodArgInfo_t *) const
virtual Bool_t IsProcessLineLocked() const =0
virtual Bool_t LoadText(const char *) const
virtual void Initialize()=0
virtual DeclId_t GetDataMember(ClassInfo_t *cl, const char *name) const =0
void CallFunc_SetArg(CallFunc_t *func, UInt_t param) const
virtual Bool_t IsLibraryLoaded(const char *libname) const =0
virtual Bool_t SetSuspendAutoParsing(Bool_t value)=0
virtual Long_t DataMemberInfo_Property(DataMemberInfo_t *) const
virtual void * GetInterfaceMethodWithPrototype(TClass *cl, const char *method, const char *proto, Bool_t objectIsConst=kFALSE, ROOT::EFunctionMatchMode=ROOT::kConversionMatch)=0
virtual void CallFunc_SetFunc(CallFunc_t *, ClassInfo_t *, const char *, const char *, bool, Longptr_t *) const
virtual void FuncTempInfo_Name(FuncTempInfo_t *, TString &name) const =0
virtual ULong64_t GetInterpreterStateMarker() const =0
virtual void ClassInfo_Init(ClassInfo_t *, int) const
virtual Longptr_t BaseClassInfo_Tagnum(BaseClassInfo_t *) const
virtual Bool_t IsIntegerType(const void *) const
virtual Int_t ReloadAllSharedLibraryMaps()=0
virtual Long64_t CallFunc_ExecInt64(CallFunc_t *, void *) const
virtual void TypedefInfo_Init(TypedefInfo_t *, const char *) const
virtual const char * GetTopLevelMacroName() const
virtual Int_t RescanLibraryMap()=0
virtual int DataMemberInfo_ArrayDim(DataMemberInfo_t *) const
virtual Bool_t CallFunc_IsValid(CallFunc_t *) const
virtual void MethodInfo_CreateSignature(MethodInfo_t *, TString &) const
virtual DeclId_t GetDataMemberAtAddr(const void *addr) const =0
virtual DeclId_t GetFunctionWithValues(ClassInfo_t *cl, const char *method, const char *params, Bool_t objectIsConst=kFALSE)=0
virtual std::string MethodInfo_TypeNormalizedName(MethodInfo_t *) const
virtual void CallFunc_SetArgArray(CallFunc_t *, Longptr_t *, Int_t) const
virtual const char * MethodArgInfo_TypeName(MethodArgInfo_t *) const
std::vector< std::pair< std::string, int > > FwdDeclArgsToKeepCollection_t
virtual void GetInterpreterTypeName(const char *name, std::string &output, Bool_t full=kFALSE)=0
virtual int TypeInfo_RefType(TypeInfo_t *) const
virtual Bool_t SetErrorMessages(Bool_t enable=kTRUE)=0
virtual TClass * GenerateTClass(const char *classname, Bool_t emulation, Bool_t silent=kFALSE)=0
void CallFunc_SetArg(CallFunc_t *func, UChar_t param) const
virtual Long_t MethodInfo_Property(MethodInfo_t *) const =0
virtual const char * GetSharedLibs()=0
virtual const char * MapCppName(const char *) const
virtual Bool_t MethodInfo_IsValid(MethodInfo_t *) const
virtual void DataMemberInfo_Delete(DataMemberInfo_t *) const
virtual void LoadEnums(TListOfEnums &cl) const =0
virtual ClassInfo_t * BaseClassInfo_ClassInfo(BaseClassInfo_t *) const =0
virtual ~TInterpreter()
virtual void * FindSym(const char *) const
virtual void SaveContext()=0
virtual Longptr_t ProcessLineSynch(const char *line, EErrorCode *error=nullptr)=0
virtual void SetErrmsgcallback(void *) const
void CallFunc_SetArgImpl(CallFunc_t *)
void CallFunc_SetArg(CallFunc_t *func, UShort_t param) const
virtual Bool_t ClassInfo_IsLoaded(ClassInfo_t *) const
virtual int DataMemberInfo_MaxIndex(DataMemberInfo_t *, Int_t) const
virtual DeclId_t GetDeclId(ClassInfo_t *info) const =0
virtual CallFunc_t * CallFunc_FactoryCopy(CallFunc_t *) const
virtual Bool_t ClassInfo_IsValidMethod(ClassInfo_t *, const char *, const char *, Longptr_t *, ROOT::EFunctionMatchMode=ROOT::kConversionMatch) const
virtual Int_t GetExitCode() const =0
virtual const char * TypedefInfo_Title(TypedefInfo_t *) const
virtual void ClassInfo_Init(ClassInfo_t *, const char *) const
virtual const char * DataMemberInfo_Title(DataMemberInfo_t *) const
virtual int BaseClassInfo_Next(BaseClassInfo_t *) const
virtual Int_t LoadLibraryMap(const char *rootmapfile=nullptr)=0
virtual MethodArgInfo_t * MethodArgInfo_Factory(MethodInfo_t *) const
virtual void SetAlloclockfunc(void(*)()) const
void Execute(const char *function, const char *params, int *error=nullptr) override=0
Execute method on this object with the given parameter string, e.g.
TDictionary::DeclId_t DeclId_t
virtual void CallFunc_Exec(CallFunc_t *, void *, TInterpreterValue &) const
virtual ClassInfo_t * ClassInfo_Factory(ClassInfo_t *) const =0
virtual TString GetMangledNameWithPrototype(TClass *cl, const char *method, const char *proto, Bool_t objectIsConst=kFALSE, ROOT::EFunctionMatchMode=ROOT::kConversionMatch)=0
virtual DeclId_t GetDeclId(CallFunc_t *info) const =0
virtual void ExecuteWithArgsAndReturn(TMethod *method, void *address, const void *args[]=nullptr, int=0, void *ret=nullptr) const =0
virtual std::unique_ptr< TInterpreterValue > MakeInterpreterValue() const
virtual void UpdateEnumConstants(TEnum *enumObj, TClass *cl) const =0
virtual Bool_t ClassInfo_HasDefaultConstructor(ClassInfo_t *, Bool_t=kFALSE) const
virtual void SetDeclAttr(DeclId_t, const char *)=0
virtual DeclId_t GetDataMemberWithValue(const void *ptrvalue) const =0
virtual void * ClassInfo_New(ClassInfo_t *, int) const
virtual void CallFunc_Delete(CallFunc_t *) const
virtual Bool_t TypeInfo_IsValid(TypeInfo_t *) const
virtual CallFuncIFacePtr_t CallFunc_IFacePtr(CallFunc_t *) const
virtual BaseClassInfo_t * BaseClassInfo_Factory(ClassInfo_t *) const
virtual void GetFunctionOverloads(ClassInfo_t *cl, const char *funcname, std::vector< DeclId_t > &res) const =0
virtual DeclId_t GetDeclId(MethodInfo_t *info) const =0
virtual void RegisterTClassUpdate(TClass *oldcl, DictFuncPtr_t dict)=0
virtual Bool_t ClassInfo_IsScopedEnum(ClassInfo_t *) const
virtual int MethodInfo_Next(MethodInfo_t *) const
virtual Longptr_t Calc(const char *line, EErrorCode *error=nullptr)=0
virtual MethodInfo_t * CallFunc_FactoryMethod(CallFunc_t *) const
virtual void ReportDiagnosticsToErrorHandler(bool=true)
Report diagnostics to the ROOT error handler (see TError.h).
virtual Longptr_t BaseClassInfo_Offset(BaseClassInfo_t *, void *=nullptr, bool=true) const
virtual const char * DataMemberInfo_TypeTrueName(DataMemberInfo_t *) const
virtual void CallFunc_SetArg(CallFunc_t *, ULong_t) const =0
virtual TypeInfo_t * TypeInfo_FactoryCopy(TypeInfo_t *) const
virtual TClass * GenerateTClass(ClassInfo_t *classinfo, Bool_t silent=kFALSE)=0
virtual Long_t ClassInfo_ClassProperty(ClassInfo_t *) const
virtual Int_t GetMore() const =0
Returns whether the interpreter is waiting for more input, i.e.
static TInterpreter * Instance()
returns gInterpreter global
virtual void CreateListOfBaseClasses(TClass *cl) const =0
virtual void ShutDown()=0
virtual void FuncTempInfo_Delete(FuncTempInfo_t *) const =0
virtual ClassInfo_t * ClassInfo_Factory(DeclId_t declid) const =0
virtual void ClearFileBusy()=0
virtual TObjArray * GetRootMapFiles() const =0
virtual const char * BaseClassInfo_FullName(BaseClassInfo_t *) const
virtual const char * GetSTLIncludePath() const
virtual Bool_t ClassInfo_IsEnum(const char *) const
virtual void CallFunc_SetArg(CallFunc_t *, Float_t) const =0
virtual void AddAvailableIndentifiers(TSeqCollection &)=0
virtual int TypedefInfo_Size(TypedefInfo_t *) const
virtual void CallFunc_SetArg(CallFunc_t *, ULong64_t) const =0
virtual void CallFunc_SetFuncProto(CallFunc_t *func, ClassInfo_t *info, const char *method, const std::vector< TypeInfo_t * > &proto, bool objectIsConst, Longptr_t *Offset, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch) const =0
virtual TEnum * CreateEnum(void *VD, TClass *cl) const =0
virtual Long_t GetExecByteCode() const
virtual FuncTempInfo_t * FuncTempInfo_Factory(DeclId_t declid) const =0
virtual const char * MethodInfo_GetMangledName(MethodInfo_t *) const
virtual MethodInfo_t * MethodInfo_Factory() const
virtual Int_t SetClassSharedLibs(const char *cls, const char *libs)=0
virtual std::vector< std::string > GetUsingNamespaces(ClassInfo_t *cl) const =0
void CallFunc_SetArg(CallFunc_t *func, const T *arg)
virtual Longptr_t ClassInfo_GetBaseOffset(ClassInfo_t *, ClassInfo_t *, void *=nullptr, bool=true) const
void CallFunc_SetArg(CallFunc_t *func, Short_t param) const
virtual Int_t DeleteGlobal(void *obj)=0
virtual void FuncTempInfo_Title(FuncTempInfo_t *, TString &title) const =0
virtual DeclId_t GetFunctionWithPrototype(ClassInfo_t *cl, const char *method, const char *proto, Bool_t objectIsConst=kFALSE, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch)=0
virtual Longptr_t ClassInfo_Tagnum(ClassInfo_t *) const
virtual void ClassInfo_Destruct(ClassInfo_t *, void *) const
virtual void * TypeInfo_QualTypePtr(TypeInfo_t *) const
virtual DeclId_t GetDeclId(TypedefInfo_t *info) const =0
virtual Bool_t FuncTempInfo_IsValid(FuncTempInfo_t *) const =0
void CallFunc_SetArgImpl(CallFunc_t *func, const U &head)
virtual Long_t BaseClassInfo_Property(BaseClassInfo_t *) const
virtual Double_t CallFunc_ExecDouble(CallFunc_t *, void *) const
virtual void CallFunc_SetArg(CallFunc_t *, Long_t) const =0
virtual void * GetInterfaceMethod(TClass *cl, const char *method, const char *params, Bool_t objectIsConst=kFALSE)=0
virtual const char * GetCurrentMacroName() const
virtual void Execute(TObject *obj, TClass *cl, const char *method, const char *params, int *error=nullptr)=0
virtual const char * TypeName(const char *s)=0
A collection of TEnum objects designed for fast access given a DeclId_t and for keep track of TEnum t...
Abstract base class for accessing the data-members of a class.
Each ROOT class (see TClass) has a linked list of methods.
Definition TMethod.h:38
The TNamed class is the base class for all named ROOT classes.
Definition TNamed.h:29
An array of TObjects.
Definition TObjArray.h:31
Mother of all ROOT objects.
Definition TObject.h:41
Sequenceable collection abstract base class.
Basic string class.
Definition TString.h:139
This class implements a mutex interface.
TLine * line
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
R__EXTERN TVirtualRWMutex * gCoreMutex
EFunctionMatchMode
@ kConversionMatch
void(* Generic_t)(void *, int, void **, void *)
void(* Dtor_t)(void *, unsigned long, int)
void(* Ctor_t)(void **, void *, unsigned long)
TMarker m
Definition textangle.C:8
static void output()