ROOT  6.06/09
Reference Guide
TCling.h
Go to the documentation of this file.
1 // @(#)root/meta:$Id$
2 // Author: Axel Naumann, 2011-10-19
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2012, 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_TCling
14 #define ROOT_TCling
15 
16 //////////////////////////////////////////////////////////////////////////
17 // //
18 // TCling //
19 // //
20 // This class defines an interface to the cling C++ interpreter. //
21 // //
22 // Cling is a full ANSI compliant C++-11 interpreter based on //
23 // clang/LLVM technology. //
24 // //
25 //////////////////////////////////////////////////////////////////////////
26 
27 #ifndef ROOT_TInterpreter
28 #include "TInterpreter.h"
29 #endif
30 #ifndef ROOT_Rtypeinfo
31 #include "Rtypeinfo.h"
32 #endif
33 
34 #include <set>
35 #include <unordered_set>
36 #include <unordered_map>
37 #include <map>
38 #include <vector>
39 
40 #ifndef WIN32
41 #define TWin32SendClass char
42 #endif
43 
44 namespace llvm {
45  class GlobalValue;
46 }
47 
48 namespace clang {
49  class CXXRecordDecl;
50  class Decl;
51  class DeclContext;
52  class EnumDecl;
53  class FunctionDecl;
54  class NamespaceDecl;
55  class Type;
56  class QualType;
57 }
58 namespace cling {
59  class Interpreter;
60  class MetaProcessor;
61  class Transaction;
62  class Value;
63 }
64 
65 class TClingCallbacks;
66 class TEnv;
67 class THashTable;
68 class TInterpreterValue;
69 class TMethod;
70 class TObjArray;
71 
72 namespace ROOT {
73  namespace TMetaUtils {
74  class TNormalizedCtxt;
75  class TClingLookupHelper;
76  }
77 }
78 
79 extern "C" {
80  void TCling__UpdateListsOnCommitted(const cling::Transaction&,
81  cling::Interpreter*);
82  void TCling__UpdateListsOnUnloaded(const cling::Transaction&);
83  void TCling__TransactionRollback(const cling::Transaction&);
84  TObject* TCling__GetObjectAddress(const char *Name, void *&LookupCtx);
85  const clang::Decl* TCling__GetObjectDecl(TObject *obj);
86  void TCling__LibraryLoaded(const void* dyLibHandle,
87  const char* canonicalName);
88  void TCling__LibraryUnloaded(const void* dyLibHandle,
89  const char* canonicalName);
90 }
91 
92 class TCling : public TInterpreter {
93 private: // Static Data Members
94 
95  static void* fgSetOfSpecials; // set of TObjects used in CINT variables
96 
97 private: // Data Members
98 
99  Int_t fMore; // The brace indent level for the cint command line processor.
100  Int_t fExitCode; // Value passed to exit() in interpreter.
101  char fPrompt[64]; // Command line prompt string.
102  //cling::DictPosition fDictPos; // dictionary context after initialization is complete.
103  //cling::DictPosition fDictPosGlobals; // dictionary context after ResetGlobals().
104  TString fSharedLibs; // Shared libraries loaded by G__loadfile().
105  Int_t fGlobalsListSerial;// Last time we refreshed the ROOT list of globals.
106  TString fIncludePath; // Interpreter include path.
107  TString fRootmapLoadPath; // Dynamic load path for rootmap files.
108  TEnv* fMapfile; // Association of classes to libraries.
109  std::map<size_t,std::vector<const char*>> fClassesHeadersMap; // Map of classes hashes and headers associated
110  std::map<const cling::Transaction*,size_t> fTransactionHeadersMap; // Map which transaction contains which autoparse.
111  std::set<size_t> fLookedUpClasses; // Set of classes for which headers were looked up already
112  std::set<size_t> fPayloads; // Set of payloads
113  std::set<const char*> fParsedPayloadsAddresses; // Set of payloads which were parsed
114  std::hash<std::string> fStringHashFunction; // A simple hashing function
115  std::unordered_set<const clang::NamespaceDecl*> fNSFromRootmaps; // Collection of namespaces fwd declared in the rootmaps
116  TObjArray* fRootmapFiles; // Loaded rootmap files.
117  Bool_t fLockProcessLine; // True if ProcessLine should lock gInterpreterMutex.
118  Bool_t fAllowLibLoad; // True if library load is allowed (i.e. not in rootcling)
119 
120  cling::Interpreter* fInterpreter; // The interpreter.
121  cling::MetaProcessor* fMetaProcessor; // The metaprocessor.
122 
123  std::vector<cling::Value> *fTemporaries; // Stack of temporaries
124  ROOT::TMetaUtils::TNormalizedCtxt *fNormalizedCtxt; // Which typedef to avoid stripping.
125  ROOT::TMetaUtils::TClingLookupHelper *fLookupHelper; // lookup helper used by TClassEdit
126 
127  void* fPrevLoadedDynLibInfo; // Internal info to mark the last loaded libray.
128  std::vector<void*> fRegisterModuleDyLibs; // Stack of libraries currently running RegisterModule
129  TClingCallbacks* fClingCallbacks; // cling::Interpreter owns it.
130  struct CharPtrCmp_t {
131  bool operator()(const char* a, const char *b) const {
132  return strcmp(a, b) < 0;
133  }
134  };
135  std::set<TClass*> fModTClasses;
136  std::vector<std::pair<TClass*,DictFuncPtr_t> > fClassesToUpdate;
138  ULong64_t fTransactionCount; // Cling counter for commited or unloaded transactions which changed the AST.
139  std::vector<const char*> fCurExecutingMacros;
140 
142  typedef std::unordered_map<std::string, TObject*> SpecialObjectMap_t;
143  std::map<SpecialObjectLookupCtx_t, SpecialObjectMap_t> fSpecialObjectMaps;
144 
145  DeclId_t GetDeclId(const llvm::GlobalValue *gv) const;
146 
149 
150  UInt_t AutoParseImplRecurse(const char *cls, bool topLevel);
151 
152 protected:
154 
155 public: // Public Interface
156 
157  virtual ~TCling();
158  TCling(const char* name, const char* title);
159 
160  cling::Interpreter *GetInterpreter() { return fInterpreter; }
161 
162  void AddIncludePath(const char* path);
163  void *GetAutoLoadCallBack() const { return fAutoLoadCallBack; }
164  void *SetAutoLoadCallBack(void* cb) { void* prev = fAutoLoadCallBack; fAutoLoadCallBack = cb; return prev; }
165  Int_t AutoLoad(const char *classname, Bool_t knowDictNotLoaded = kFALSE);
166  Int_t AutoLoad(const std::type_info& typeinfo, Bool_t knowDictNotLoaded = kFALSE);
167  Int_t AutoParse(const char* cls);
168  void* LazyFunctionCreatorAutoload(const std::string& mangled_name);
170  Bool_t IsAutoLoadNamespaceCandidate(const clang::NamespaceDecl* nsDecl);
171  void ClearFileBusy();
172  void ClearStack(); // Delete existing temporary values
173  Bool_t Declare(const char* code);
174  void EnableAutoLoading();
175  void EndOfLineAction();
176  TClass *GetClass(const std::type_info& typeinfo, Bool_t load) const;
177  Int_t GetExitCode() const { return fExitCode; }
178  TEnv* GetMapfile() const { return fMapfile; }
179  Int_t GetMore() const { return fMore; }
180  TClass *GenerateTClass(const char *classname, Bool_t emulation, Bool_t silent = kFALSE);
181  TClass *GenerateTClass(ClassInfo_t *classinfo, Bool_t silent = kFALSE);
182  Int_t GenerateDictionary(const char* classes, const char* includes = 0, const char* options = 0);
183  char* GetPrompt() { return fPrompt; }
184  const char* GetSharedLibs();
185  const char* GetClassSharedLibs(const char* cls);
186  const char* GetSharedLibDeps(const char* lib);
187  const char* GetIncludePath();
188  virtual const char* GetSTLIncludePath() const;
190  unsigned long long GetInterpreterStateMarker() const { return fTransactionCount;}
191  virtual void Initialize();
192  void InspectMembers(TMemberInspector&, const void* obj, const TClass* cl, Bool_t isTransient);
193  Bool_t IsLoaded(const char* filename) const;
194  Int_t Load(const char* filenam, Bool_t system = kFALSE);
195  void LoadMacro(const char* filename, EErrorCode* error = 0);
196  Int_t LoadLibraryMap(const char* rootmapfile = 0);
200  Int_t UnloadLibraryMap(const char* library);
201  Long_t ProcessLine(const char* line, EErrorCode* error = 0);
202  Long_t ProcessLineAsynch(const char* line, EErrorCode* error = 0);
203  Long_t ProcessLineSynch(const char* line, EErrorCode* error = 0);
204  void PrintIntro();
205  void RegisterModule(const char* modulename,
206  const char** headers,
207  const char** includePaths,
208  const char* payloadCode,
209  const char* fwdDeclsCode,
210  void (*triggerFunc)(),
211  const FwdDeclArgsToKeepCollection_t& fwdDeclsArgToSkip,
212  const char** classesHeaders);
213  void RegisterTClassUpdate(TClass *oldcl,DictFuncPtr_t dict);
214  void UnRegisterTClassUpdate(const TClass *oldcl);
215 
216  Int_t SetClassSharedLibs(const char *cls, const char *libs);
217  void SetGetline(const char * (*getlineFunc)(const char* prompt),
218  void (*histaddFunc)(const char* line));
219  void Reset();
220  void ResetAll();
221  void ResetGlobals();
222  void ResetGlobalVar(void* obj);
223  void RewindDictionary();
224  Int_t DeleteGlobal(void* obj);
225  Int_t DeleteVariable(const char *name);
226  void SaveContext();
227  void SaveGlobalsContext();
228  void UpdateListOfGlobals();
230  void UpdateListOfTypes();
231  void SetClassInfo(TClass* cl, Bool_t reload = kFALSE);
232  Bool_t CheckClassInfo(const char* name, Bool_t autoload, Bool_t isClassOrNamespaceOnly = kFALSE);
233  Bool_t CheckClassTemplate(const char *name);
234  Long_t Calc(const char* line, EErrorCode* error = 0);
235  void CreateListOfBaseClasses(TClass* cl) const;
236  void CreateListOfDataMembers(TClass* cl) const;
237  void CreateListOfMethods(TClass* cl) const;
238  void CreateListOfMethodArgs(TFunction* m) const;
239  void UpdateListOfMethods(TClass* cl) const;
240  void UpdateListOfDataMembers(TClass* cl) const;
241 
242  virtual DeclId_t GetDataMember(ClassInfo_t *cl, const char *name) const;
243  virtual DeclId_t GetDataMemberAtAddr(const void *addr) const;
244  virtual DeclId_t GetDataMemberWithValue(const void *ptrvalue) const;
245  virtual DeclId_t GetEnum(TClass *cl, const char *name) const;
246  virtual TEnum* CreateEnum(void *VD, TClass *cl) const;
247  virtual void UpdateEnumConstants(TEnum* enumObj, TClass* cl) const;
248  virtual void LoadEnums(TListOfEnums& cl) const;
249  TString GetMangledName(TClass* cl, const char* method, const char* params, Bool_t objectIsConst = kFALSE);
250  TString GetMangledNameWithPrototype(TClass* cl, const char* method, const char* proto, Bool_t objectIsConst = kFALSE, ROOT::EFunctionMatchMode mode = ROOT::kConversionMatch);
251  void* GetInterfaceMethod(TClass* cl, const char* method, const char* params, Bool_t objectIsConst = kFALSE);
252  void* GetInterfaceMethodWithPrototype(TClass* cl, const char* method, const char* proto, Bool_t objectIsConst = kFALSE, ROOT::EFunctionMatchMode mode = ROOT::kConversionMatch);
253  DeclId_t GetFunction(ClassInfo_t *cl, const char *funcname);
254  DeclId_t GetFunctionWithPrototype(ClassInfo_t *cl, const char* method, const char* proto, Bool_t objectIsConst = kFALSE, ROOT::EFunctionMatchMode mode = ROOT::kConversionMatch);
255  DeclId_t GetFunctionWithValues(ClassInfo_t *cl, const char* method, const char* params, Bool_t objectIsConst = kFALSE);
256  DeclId_t GetFunctionTemplate(ClassInfo_t *cl, const char *funcname);
257  void GetFunctionOverloads(ClassInfo_t *cl, const char *funcname, std::vector<DeclId_t>& res) const;
258  virtual void LoadFunctionTemplates(TClass* cl) const;
259 
260  void GetInterpreterTypeName(const char* name, std::string &output, Bool_t full = kFALSE);
261  void Execute(const char* function, const char* params, int* error = 0);
262  void Execute(TObject* obj, TClass* cl, const char* method, const char* params, int* error = 0);
263  void Execute(TObject* obj, TClass* cl, const char* method, const char* params, Bool_t objectIsConst, int* error = 0);
264  void Execute(TObject* obj, TClass* cl, TMethod* method, TObjArray* params, int* error = 0);
265  void ExecuteWithArgsAndReturn(TMethod* method, void* address, const void* args[] = 0, int nargs = 0, void* ret= 0) const;
266  Long_t ExecuteMacro(const char* filename, EErrorCode* error = 0);
267  void RecursiveRemove(TObject* obj);
271  return fLockProcessLine;
272  }
274  fLockProcessLine = lock;
275  }
276  const char* TypeName(const char* typeDesc);
277 
278  static void UpdateClassInfo(char* name, Long_t tagnum);
279  static void UpdateClassInfoWork(const char* name);
280  void UpdateClassInfoWithDecl(const void* vTD);
281  static void UpdateAllCanvases();
282 
283  // Misc
284  virtual int DisplayClass(FILE* fout, const char* name, int base, int start) const;
285  virtual int DisplayIncludePath(FILE* fout) const;
286  virtual void* FindSym(const char* entry) const;
287  virtual void GenericError(const char* error) const;
288  virtual Long_t GetExecByteCode() const;
289  virtual Long_t Getgvp() const;
290  virtual const char* Getp2f2funcname(void* receiver) const;
291  virtual const char* GetTopLevelMacroName() const;
292  virtual const char* GetCurrentMacroName() const;
293  virtual int GetSecurityError() const;
294  virtual int LoadFile(const char* path) const;
295  virtual Bool_t LoadText(const char* text) const;
296  virtual const char* MapCppName(const char*) const;
297  virtual void SetAlloclockfunc(void (*)()) const;
298  virtual void SetAllocunlockfunc(void (*)()) const;
299  virtual int SetClassAutoloading(int) const;
300  virtual int SetClassAutoparsing(int) ;
302  virtual void SetErrmsgcallback(void* p) const;
303  virtual void Setgvp(Long_t) const;
304  virtual void SetRTLD_NOW() const;
305  virtual void SetRTLD_LAZY() const;
306  virtual void SetTempLevel(int val) const;
307  virtual int UnloadFile(const char* path) const;
308 
311  void RegisterTemporary(const cling::Value& value);
313  TObject* GetObjectAddress(const char *Name, void *&LookupCtx);
314 
315 
316  // core/meta helper functions.
318  virtual void GetFunctionName(const clang::FunctionDecl *decl, std::string &name) const;
319 
320  // CallFunc interface
321  virtual DeclId_t GetDeclId(CallFunc_t *info) const;
322  virtual void CallFunc_Delete(CallFunc_t* func) const;
323  virtual void CallFunc_Exec(CallFunc_t* func, void* address) const;
324  virtual void CallFunc_Exec(CallFunc_t* func, void* address, TInterpreterValue& val) const;
325  virtual void CallFunc_ExecWithReturn(CallFunc_t* func, void* address, void* ret) const;
326  virtual void CallFunc_ExecWithArgsAndReturn(CallFunc_t* func, void* address, const void* args[] = 0, int nargs = 0, void* ret = 0) const;
327  virtual Long_t CallFunc_ExecInt(CallFunc_t* func, void* address) const;
328  virtual Long64_t CallFunc_ExecInt64(CallFunc_t* func, void* address) const;
329  virtual Double_t CallFunc_ExecDouble(CallFunc_t* func, void* address) const;
330  virtual CallFunc_t* CallFunc_Factory() const;
331  virtual CallFunc_t* CallFunc_FactoryCopy(CallFunc_t* func) const;
332  virtual MethodInfo_t* CallFunc_FactoryMethod(CallFunc_t* func) const;
333  virtual void CallFunc_IgnoreExtraArgs(CallFunc_t* func, bool ignore) const;
334  virtual void CallFunc_Init(CallFunc_t* func) const;
335  virtual bool CallFunc_IsValid(CallFunc_t* func) const;
336  virtual CallFuncIFacePtr_t CallFunc_IFacePtr(CallFunc_t * func) const;
337  virtual void CallFunc_ResetArg(CallFunc_t* func) const;
338  virtual void CallFunc_SetArg(CallFunc_t* func, Long_t param) const;
339  virtual void CallFunc_SetArg(CallFunc_t* func, ULong_t param) const;
340  virtual void CallFunc_SetArg(CallFunc_t* func, Float_t param) const;
341  virtual void CallFunc_SetArg(CallFunc_t* func, Double_t param) const;
342  virtual void CallFunc_SetArg(CallFunc_t* func, Long64_t param) const;
343  virtual void CallFunc_SetArg(CallFunc_t* func, ULong64_t param) const;
344  virtual void CallFunc_SetArgArray(CallFunc_t* func, Long_t* paramArr, Int_t nparam) const;
345  virtual void CallFunc_SetArgs(CallFunc_t* func, const char* param) const;
346  virtual void CallFunc_SetFunc(CallFunc_t* func, ClassInfo_t* info, const char* method, const char* params, Long_t* Offset) const;
347  virtual void CallFunc_SetFunc(CallFunc_t* func, ClassInfo_t* info, const char* method, const char* params, bool objectIsConst, Long_t* Offset) const;
348  virtual void CallFunc_SetFunc(CallFunc_t* func, MethodInfo_t* info) const;
349  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;
350  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;
351  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;
352  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;
353 
354  // ClassInfo interface
355  virtual DeclId_t GetDeclId(ClassInfo_t *info) const;
356  virtual Bool_t ClassInfo_Contains(ClassInfo_t *info, DeclId_t declid) const;
357  virtual Long_t ClassInfo_ClassProperty(ClassInfo_t* info) const;
358  virtual void ClassInfo_Delete(ClassInfo_t* info) const;
359  virtual void ClassInfo_Delete(ClassInfo_t* info, void* arena) const;
360  virtual void ClassInfo_DeleteArray(ClassInfo_t* info, void* arena, bool dtorOnly) const;
361  virtual void ClassInfo_Destruct(ClassInfo_t* info, void* arena) const;
362  virtual ClassInfo_t* ClassInfo_Factory(Bool_t all = kTRUE) const;
363  virtual ClassInfo_t* ClassInfo_Factory(ClassInfo_t* cl) const;
364  virtual ClassInfo_t* ClassInfo_Factory(const char* name) const;
365  virtual Long_t ClassInfo_GetBaseOffset(ClassInfo_t* fromDerived, ClassInfo_t* toBase, void * address, bool isDerivedObject) const;
366  virtual int ClassInfo_GetMethodNArg(ClassInfo_t* info, const char* method, const char* proto, Bool_t objectIsConst = false, ROOT::EFunctionMatchMode mode = ROOT::kConversionMatch) const;
367  virtual bool ClassInfo_HasDefaultConstructor(ClassInfo_t* info) const;
368  virtual bool ClassInfo_HasMethod(ClassInfo_t* info, const char* name) const;
369  virtual void ClassInfo_Init(ClassInfo_t* info, const char* funcname) const;
370  virtual void ClassInfo_Init(ClassInfo_t* info, int tagnum) const;
371  virtual bool ClassInfo_IsBase(ClassInfo_t* info, const char* name) const;
372  virtual bool ClassInfo_IsEnum(const char* name) const;
373  virtual bool ClassInfo_IsLoaded(ClassInfo_t* info) const;
374  virtual bool ClassInfo_IsValid(ClassInfo_t* info) const;
375  virtual bool ClassInfo_IsValidMethod(ClassInfo_t* info, const char* method, const char* proto, Long_t* offset, ROOT::EFunctionMatchMode /* mode */ = ROOT::kConversionMatch) const;
376  virtual bool ClassInfo_IsValidMethod(ClassInfo_t* info, const char* method, const char* proto, Bool_t objectIsConst, Long_t* offset, ROOT::EFunctionMatchMode /* mode */ = ROOT::kConversionMatch) const;
377  virtual int ClassInfo_Next(ClassInfo_t* info) const;
378  virtual void* ClassInfo_New(ClassInfo_t* info) const;
379  virtual void* ClassInfo_New(ClassInfo_t* info, int n) const;
380  virtual void* ClassInfo_New(ClassInfo_t* info, int n, void* arena) const;
381  virtual void* ClassInfo_New(ClassInfo_t* info, void* arena) const;
382  virtual Long_t ClassInfo_Property(ClassInfo_t* info) const;
383  virtual int ClassInfo_Size(ClassInfo_t* info) const;
384  virtual Long_t ClassInfo_Tagnum(ClassInfo_t* info) const;
385  virtual const char* ClassInfo_FileName(ClassInfo_t* info) const;
386  virtual const char* ClassInfo_FullName(ClassInfo_t* info) const;
387  virtual const char* ClassInfo_Name(ClassInfo_t* info) const;
388  virtual const char* ClassInfo_Title(ClassInfo_t* info) const;
389  virtual const char* ClassInfo_TmpltName(ClassInfo_t* info) const;
390 
391  // BaseClassInfo interface
392  virtual void BaseClassInfo_Delete(BaseClassInfo_t* bcinfo) const;
393  virtual BaseClassInfo_t* BaseClassInfo_Factory(ClassInfo_t* info) const;
394  virtual BaseClassInfo_t* BaseClassInfo_Factory(ClassInfo_t* derived,
395  ClassInfo_t* base) const;
396  virtual int BaseClassInfo_Next(BaseClassInfo_t* bcinfo) const;
397  virtual int BaseClassInfo_Next(BaseClassInfo_t* bcinfo, int onlyDirect) const;
398  virtual Long_t BaseClassInfo_Offset(BaseClassInfo_t* toBaseClassInfo, void * address, bool isDerivedObject) const;
399  virtual Long_t BaseClassInfo_Property(BaseClassInfo_t* bcinfo) const;
400  virtual Long_t BaseClassInfo_Tagnum(BaseClassInfo_t* bcinfo) const;
401  virtual ClassInfo_t*BaseClassInfo_ClassInfo(BaseClassInfo_t * /* bcinfo */) const;
402  virtual const char* BaseClassInfo_FullName(BaseClassInfo_t* bcinfo) const;
403  virtual const char* BaseClassInfo_Name(BaseClassInfo_t* bcinfo) const;
404  virtual const char* BaseClassInfo_TmpltName(BaseClassInfo_t* bcinfo) const;
405 
406  // DataMemberInfo interface
407  virtual DeclId_t GetDeclId(DataMemberInfo_t *info) const;
408  virtual int DataMemberInfo_ArrayDim(DataMemberInfo_t* dminfo) const;
409  virtual void DataMemberInfo_Delete(DataMemberInfo_t* dminfo) const;
410  virtual DataMemberInfo_t* DataMemberInfo_Factory(ClassInfo_t* clinfo = 0) const;
411  virtual DataMemberInfo_t *DataMemberInfo_Factory(DeclId_t declid, ClassInfo_t* clinfo) const;
412  virtual DataMemberInfo_t* DataMemberInfo_FactoryCopy(DataMemberInfo_t* dminfo) const;
413  virtual bool DataMemberInfo_IsValid(DataMemberInfo_t* dminfo) const;
414  virtual int DataMemberInfo_MaxIndex(DataMemberInfo_t* dminfo, Int_t dim) const;
415  virtual int DataMemberInfo_Next(DataMemberInfo_t* dminfo) const;
416  virtual Long_t DataMemberInfo_Offset(DataMemberInfo_t* dminfo) const;
417  virtual Long_t DataMemberInfo_Property(DataMemberInfo_t* dminfo) const;
418  virtual Long_t DataMemberInfo_TypeProperty(DataMemberInfo_t* dminfo) const;
419  virtual int DataMemberInfo_TypeSize(DataMemberInfo_t* dminfo) const;
420  virtual const char* DataMemberInfo_TypeName(DataMemberInfo_t* dminfo) const;
421  virtual const char* DataMemberInfo_TypeTrueName(DataMemberInfo_t* dminfo) const;
422  virtual const char* DataMemberInfo_Name(DataMemberInfo_t* dminfo) const;
423  virtual const char* DataMemberInfo_Title(DataMemberInfo_t* dminfo) const;
424  virtual const char* DataMemberInfo_ValidArrayIndex(DataMemberInfo_t* dminfo) const;
425  virtual void SetDeclAttr(DeclId_t, const char* /* attribute */);
426 
427 
428  // Function Template interface
429  virtual DeclId_t GetDeclId(FuncTempInfo_t *info) const;
430  virtual void FuncTempInfo_Delete(FuncTempInfo_t * /* ft_info */) const;
431  virtual FuncTempInfo_t *FuncTempInfo_Factory(DeclId_t declid) const;
432  virtual FuncTempInfo_t *FuncTempInfo_FactoryCopy(FuncTempInfo_t * /* ft_info */) const;
433  virtual Bool_t FuncTempInfo_IsValid(FuncTempInfo_t * /* ft_info */) const;
434  virtual UInt_t FuncTempInfo_TemplateNargs(FuncTempInfo_t * /* ft_info */) const;
435  virtual UInt_t FuncTempInfo_TemplateMinReqArgs(FuncTempInfo_t * /* ft_info */) const;
436  virtual Long_t FuncTempInfo_Property(FuncTempInfo_t * /* ft_info */) const;
437  virtual void FuncTempInfo_Name(FuncTempInfo_t * /* ft_info */, TString& name) const;
438  virtual void FuncTempInfo_Title(FuncTempInfo_t * /* ft_info */, TString& name) const;
439 
440  // MethodInfo interface
441  virtual DeclId_t GetDeclId(MethodInfo_t *info) const;
442  virtual void MethodInfo_CreateSignature(MethodInfo_t* minfo, TString& signature) const;
443  virtual void MethodInfo_Delete(MethodInfo_t* minfo) const;
444  virtual MethodInfo_t* MethodInfo_Factory() const;
445  virtual MethodInfo_t* MethodInfo_Factory(ClassInfo_t *clinfo) const;
446  virtual MethodInfo_t *MethodInfo_Factory(DeclId_t declid) const;
447  virtual MethodInfo_t* MethodInfo_FactoryCopy(MethodInfo_t* minfo) const;
448  virtual void* MethodInfo_InterfaceMethod(MethodInfo_t* minfo) const;
449  virtual bool MethodInfo_IsValid(MethodInfo_t* minfo) const;
450  virtual int MethodInfo_NArg(MethodInfo_t* minfo) const;
451  virtual int MethodInfo_NDefaultArg(MethodInfo_t* minfo) const;
452  virtual int MethodInfo_Next(MethodInfo_t* minfo) const;
453  virtual Long_t MethodInfo_Property(MethodInfo_t* minfo) const;
454  virtual Long_t MethodInfo_ExtraProperty(MethodInfo_t* minfo) const;
455  virtual TypeInfo_t* MethodInfo_Type(MethodInfo_t* minfo) const;
456  virtual EReturnType MethodInfo_MethodCallReturnType(MethodInfo_t* minfo) const;
457  virtual const char* MethodInfo_GetMangledName(MethodInfo_t* minfo) const;
458  virtual const char* MethodInfo_GetPrototype(MethodInfo_t* minfo) const;
459  virtual const char* MethodInfo_Name(MethodInfo_t* minfo) const;
460  virtual const char* MethodInfo_TypeName(MethodInfo_t* minfo) const;
461  virtual std::string MethodInfo_TypeNormalizedName(MethodInfo_t* minfo) const;
462  virtual const char* MethodInfo_Title(MethodInfo_t* minfo) const;
463 
464  // MethodArgInfo interface
465  virtual void MethodArgInfo_Delete(MethodArgInfo_t* marginfo) const;
466  virtual MethodArgInfo_t* MethodArgInfo_Factory() const;
467  virtual MethodArgInfo_t* MethodArgInfo_Factory(MethodInfo_t *minfo) const;
468  virtual MethodArgInfo_t* MethodArgInfo_FactoryCopy(MethodArgInfo_t* marginfo) const;
469  virtual bool MethodArgInfo_IsValid(MethodArgInfo_t* marginfo) const;
470  virtual int MethodArgInfo_Next(MethodArgInfo_t* marginfo) const;
471  virtual Long_t MethodArgInfo_Property(MethodArgInfo_t* marginfo) const;
472  virtual const char* MethodArgInfo_DefaultValue(MethodArgInfo_t* marginfo) const;
473  virtual const char* MethodArgInfo_Name(MethodArgInfo_t* marginfo) const;
474  virtual const char* MethodArgInfo_TypeName(MethodArgInfo_t* marginfo) const;
475  virtual std::string MethodArgInfo_TypeNormalizedName(MethodArgInfo_t *marginfo) const;
476 
477  // TypeInfo interface
478  virtual void TypeInfo_Delete(TypeInfo_t* tinfo) const;
479  virtual TypeInfo_t* TypeInfo_Factory() const;
480  virtual TypeInfo_t *TypeInfo_Factory(const char* name) const;
481  virtual TypeInfo_t* TypeInfo_FactoryCopy(TypeInfo_t* /* tinfo */) const;
482  virtual void TypeInfo_Init(TypeInfo_t* tinfo, const char* funcname) const;
483  virtual bool TypeInfo_IsValid(TypeInfo_t* tinfo) const;
484  virtual const char* TypeInfo_Name(TypeInfo_t* /* info */) const;
485  virtual Long_t TypeInfo_Property(TypeInfo_t* tinfo) const;
486  virtual int TypeInfo_RefType(TypeInfo_t* /* tinfo */) const;
487  virtual int TypeInfo_Size(TypeInfo_t* tinfo) const;
488  virtual const char* TypeInfo_TrueName(TypeInfo_t* tinfo) const;
489 
490  // TypedefInfo interface
491  virtual DeclId_t GetDeclId(TypedefInfo_t *info) const;
492  virtual void TypedefInfo_Delete(TypedefInfo_t* tinfo) const;
493  virtual TypedefInfo_t* TypedefInfo_Factory() const;
494  virtual TypedefInfo_t* TypedefInfo_Factory(const char* name) const;
495  virtual TypedefInfo_t* TypedefInfo_FactoryCopy(TypedefInfo_t* tinfo) const;
496  virtual void TypedefInfo_Init(TypedefInfo_t* tinfo, const char* name) const;
497  virtual bool TypedefInfo_IsValid(TypedefInfo_t* tinfo) const;
498  virtual int TypedefInfo_Next(TypedefInfo_t* tinfo) const;
499  virtual Long_t TypedefInfo_Property(TypedefInfo_t* tinfo) const;
500  virtual int TypedefInfo_Size(TypedefInfo_t* tinfo) const;
501  virtual const char* TypedefInfo_TrueName(TypedefInfo_t* tinfo) const;
502  virtual const char* TypedefInfo_Name(TypedefInfo_t* tinfo) const;
503  virtual const char* TypedefInfo_Title(TypedefInfo_t* tinfo) const;
504 
505  std::set<TClass*>& GetModTClasses() { return fModTClasses; }
506 
507  void HandleNewDecl(const void* DV, bool isDeserialized, std::set<TClass*>& modifiedClasses);
508  void UpdateListsOnCommitted(const cling::Transaction &T);
509  void UpdateListsOnUnloaded(const cling::Transaction &T);
510  void TransactionRollback(const cling::Transaction &T);
511  void LibraryLoaded(const void* dyLibHandle, const char* canonicalName);
512  void LibraryUnloaded(const void* dyLibHandle, const char* canonicalName);
513 
514 private: // Private Utility Functions and Classes
515 
517  public:
518  TUniqueString() = delete;
519  TUniqueString(const TUniqueString &) = delete;
520  TUniqueString(Long64_t size);
521  const char *Data();
522  bool Append(const std::string &str);
523  private:
524  std::string fContent;
525  std::set<size_t> fLinesHashSet;
526  std::hash<std::string> fHashFunc;
527  };
528 
529  TCling();
530  TCling(const TCling&); // NOT IMPLEMENTED
531  TCling& operator=(const TCling&); // NOT IMPLEMENTED
532 
533  void Execute(TMethod*, TObjArray*, int* /*error*/ = 0)
534  {
535  }
536 
538  void RegisterLoadedSharedLibrary(const char* name);
539  void AddFriendToClass(clang::FunctionDecl*, clang::CXXRecordDecl*) const;
540 
541  bool LoadPCM(TString pcmFileName, const char** headers,
542  void (*triggerFunc)()) const;
543  void InitRootmapFile(const char *name);
544  int ReadRootmapFile(const char *rootmapfile, TUniqueString* uniqueString = nullptr);
545  Bool_t HandleNewTransaction(const cling::Transaction &T);
546  void UnloadClassMembers(TClass* cl, const clang::DeclContext* DC);
547 
548 };
549 
550 #endif
virtual MethodArgInfo_t * MethodArgInfo_Factory() const
Definition: TCling.cxx:7754
const char * GetIncludePath()
Refresh the list of include paths known to the interpreter and return it with -I prepended.
Definition: TCling.cxx:5994
virtual Long_t MethodInfo_Property(MethodInfo_t *minfo) const
Definition: TCling.cxx:7606
virtual Long_t ClassInfo_ClassProperty(ClassInfo_t *info) const
Definition: TCling.cxx:6760
virtual void SetTempLevel(int val) const
Create / close a scope for temporaries.
Definition: TCling.cxx:6271
RooCmdArg Offset(Bool_t flag=kTRUE)
TObject * GetObjectAddress(const char *Name, void *&LookupCtx)
If the interpreter encounters Name, check whether that is an object ROOT could retrieve.
Definition: TCling.cxx:6329
The TEnum class implements the enum type.
Definition: TEnum.h:42
virtual DeclId_t GetDataMemberAtAddr(const void *addr) const
Return pointer to cling DeclId for a data member with a given name.
Definition: TCling.cxx:3884
This class defines an abstract interface to a generic command line interpreter.
Definition: TInterpreter.h:50
An array of TObjects.
Definition: TObjArray.h:39
TCling & operator=(const TCling &)
void * GetInterfaceMethod(TClass *cl, const char *method, const char *params, Bool_t objectIsConst=kFALSE)
Return pointer to cling interface function for a method of a class with parameters params (params is ...
Definition: TCling.cxx:3941
virtual void SetRTLD_NOW() const
Definition: TCling.cxx:6255
DeclId_t GetFunctionWithValues(ClassInfo_t *cl, const char *method, const char *params, Bool_t objectIsConst=kFALSE)
Return pointer to cling DeclId for a method of a class with a certain prototype, i.e.
Definition: TCling.cxx:4041
void TransactionRollback(const cling::Transaction &T)
Definition: TCling.cxx:5847
virtual int TypedefInfo_Size(TypedefInfo_t *tinfo) const
Definition: TCling.cxx:7996
virtual void SetAllocunlockfunc(void(*)()) const
[Place holder for Mutex Unlock] Provide the interpreter with a way to release a lock used to protect ...
Definition: TCling.cxx:6188
void * SpecialObjectLookupCtx_t
Definition: TCling.h:141
virtual bool ClassInfo_HasDefaultConstructor(ClassInfo_t *info) const
Definition: TCling.cxx:6830
Definition: TString.h:780
void LibraryLoaded(const void *dyLibHandle, const char *canonicalName)
Definition: TCling.cxx:5870
long long Long64_t
Definition: RtypesCore.h:69
Bool_t HandleNewTransaction(const cling::Transaction &T)
Helper function to increase the internal Cling count of transactions that change the AST...
Definition: TCling.cxx:2889
virtual CallFuncIFacePtr_t CallFunc_IFacePtr(CallFunc_t *func) const
Definition: TCling.cxx:6575
virtual void BaseClassInfo_Delete(BaseClassInfo_t *bcinfo) const
Definition: TCling.cxx:7024
virtual DataMemberInfo_t * DataMemberInfo_Factory(ClassInfo_t *clinfo=0) const
Definition: TCling.cxx:7158
virtual bool CallFunc_IsValid(CallFunc_t *func) const
Definition: TCling.cxx:6566
virtual int ClassInfo_Next(ClassInfo_t *info) const
Definition: TCling.cxx:6911
std::string fContent
Definition: TCling.h:524
virtual const char * DataMemberInfo_TypeName(DataMemberInfo_t *dminfo) const
Definition: TCling.cxx:7241
virtual void CallFunc_ExecWithReturn(CallFunc_t *func, void *address, void *ret) const
Definition: TCling.cxx:6483
Namespace for new ROOT classes and functions.
Definition: ROOT.py:1
TObjArray * GetRootMapFiles() const
Definition: TCling.h:189
std::map< SpecialObjectLookupCtx_t, SpecialObjectMap_t > fSpecialObjectMaps
Definition: TCling.h:143
virtual TypedefInfo_t * TypedefInfo_FactoryCopy(TypedefInfo_t *tinfo) const
Definition: TCling.cxx:7955
TLine * line
void RegisterLoadedSharedLibrary(const char *name)
Register a new shared library name with the interpreter; add it to fSharedLibs.
Definition: TCling.cxx:2673
void TCling__UpdateListsOnUnloaded(const cling::Transaction &)
Definition: TCling.cxx:545
float Float_t
Definition: RtypesCore.h:53
virtual DeclId_t GetEnum(TClass *cl, const char *name) const
Return pointer to cling Decl of global/static variable that is located at the address given by addr...
Definition: TCling.cxx:3770
void UpdateListsOnCommitted(const cling::Transaction &T)
Definition: TCling.cxx:5584
TDictionary::DeclId_t DeclId_t
Definition: TInterpreter.h:236
virtual int BaseClassInfo_Next(BaseClassInfo_t *bcinfo) const
Definition: TCling.cxx:7051
virtual TypeInfo_t * TypeInfo_FactoryCopy(TypeInfo_t *) const
Definition: TCling.cxx:7862
virtual void MethodInfo_CreateSignature(MethodInfo_t *minfo, TString &signature) const
Definition: TCling.cxx:7525
double T(double x)
Definition: ChebyshevPol.h:34
virtual CallFunc_t * CallFunc_FactoryCopy(CallFunc_t *func) const
Definition: TCling.cxx:6534
std::unordered_map< std::string, TObject * > SpecialObjectMap_t
Definition: TCling.h:142
virtual const char * MethodInfo_Title(MethodInfo_t *minfo) const
Definition: TCling.cxx:7675
cling::MetaProcessor * fMetaProcessor
Definition: TCling.h:121
virtual int DataMemberInfo_TypeSize(DataMemberInfo_t *dminfo) const
Definition: TCling.cxx:7233
virtual void SetRTLD_LAZY() const
Definition: TCling.cxx:6262
TClass * GenerateTClass(const char *classname, Bool_t emulation, Bool_t silent=kFALSE)
Generate a TClass for the given class.
Definition: TCling.cxx:3522
void UpdateListOfGlobals()
No op: see TClingCallbacks (used to update the list of globals)
Definition: TCling.cxx:3100
void UpdateListOfGlobalFunctions()
No op: see TClingCallbacks (used to update the list of global functions)
Definition: TCling.cxx:3107
virtual std::string MethodArgInfo_TypeNormalizedName(MethodArgInfo_t *marginfo) const
Definition: TCling.cxx:7826
void SaveContext()
Save the current Cling state.
Definition: TCling.cxx:3074
virtual MethodInfo_t * CallFunc_FactoryMethod(CallFunc_t *func) const
Definition: TCling.cxx:6541
cling::Interpreter * fInterpreter
Definition: TCling.h:120
virtual ClassInfo_t * ClassInfo_Factory(Bool_t all=kTRUE) const
Definition: TCling.cxx:6799
virtual BaseClassInfo_t * BaseClassInfo_Factory(ClassInfo_t *info) const
Definition: TCling.cxx:7031
const char * GetClassSharedLibs(const char *cls)
Get the list of shared libraries containing the code for class cls.
Definition: TCling.cxx:5897
virtual void MethodInfo_Delete(MethodInfo_t *minfo) const
Interface to cling function.
Definition: TCling.cxx:7518
virtual void CallFunc_SetArgArray(CallFunc_t *func, Long_t *paramArr, Int_t nparam) const
Definition: TCling.cxx:6639
virtual const char * TypedefInfo_TrueName(TypedefInfo_t *tinfo) const
Definition: TCling.cxx:8004
static const char * filename()
bool LoadPCM(TString pcmFileName, const char **headers, void(*triggerFunc)()) const
Tries to load a PCM; returns true on success.
Definition: TCling.cxx:1270
virtual FuncTempInfo_t * FuncTempInfo_FactoryCopy(FuncTempInfo_t *) const
Construct a FuncTempInfo_t.
Definition: TCling.cxx:7370
Int_t Load(const char *filenam, Bool_t system=kFALSE)
Load a library file in cling's memory.
Definition: TCling.cxx:2745
The TEnv class reads config files, by default named .rootrc.
Definition: TEnv.h:128
Basic string class.
Definition: TString.h:137
void * GetAutoLoadCallBack() const
Definition: TCling.h:163
TClass * GetClass(const std::type_info &typeinfo, Bool_t load) const
Demangle the name (from the typeinfo) and then request the class via the usual name based interface (...
Definition: TCling.cxx:4992
ROOT::TMetaUtils::TNormalizedCtxt * fNormalizedCtxt
Definition: TCling.h:124
TString GetMangledName(TClass *cl, const char *method, const char *params, Bool_t objectIsConst=kFALSE)
Return the cling mangled name for a method of a class with parameters params (params is a string of a...
Definition: TCling.cxx:3896
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
virtual const char * MethodInfo_GetMangledName(MethodInfo_t *minfo) const
Definition: TCling.cxx:7630
virtual UInt_t FuncTempInfo_TemplateNargs(FuncTempInfo_t *) const
Return the maximum number of template arguments of the function template described by ft_info...
Definition: TCling.cxx:7393
TArc * a
Definition: textangle.C:12
virtual int DisplayIncludePath(FILE *fout) const
Interface to cling function.
Definition: TCling.cxx:6043
std::vector< std::pair< std::string, int > > FwdDeclArgsToKeepCollection_t
Definition: TInterpreter.h:108
const Bool_t kFALSE
Definition: Rtypes.h:92
Int_t fExitCode
Definition: TCling.h:100
void * fPrevLoadedDynLibInfo
Definition: TCling.h:127
virtual const char * BaseClassInfo_Name(BaseClassInfo_t *bcinfo) const
Definition: TCling.cxx:7122
virtual void TypeInfo_Delete(TypeInfo_t *tinfo) const
Definition: TCling.cxx:7839
virtual Long_t CallFunc_ExecInt(CallFunc_t *func, void *address) const
Definition: TCling.cxx:6502
Int_t DeleteVariable(const char *name)
Undeclare obj called name.
Definition: TCling.cxx:3015
virtual int SetClassAutoparsing(int)
Enable/Disable the Autoparsing of headers.
Definition: TCling.cxx:6212
virtual int LoadFile(const char *path) const
Load a source file or library called path into the interpreter.
Definition: TCling.cxx:6143
Abstract base class for accessing the data-members of a class.
virtual void TypeInfo_Init(TypeInfo_t *tinfo, const char *funcname) const
Definition: TCling.cxx:7869
TString GetMangledNameWithPrototype(TClass *cl, const char *method, const char *proto, Bool_t objectIsConst=kFALSE, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch)
Return the cling mangled name for a method of a class with a certain prototype, i.e.
Definition: TCling.cxx:3923
std::vector< cling::Value > * fTemporaries
Definition: TCling.h:123
virtual ~TCling()
Destroy the interpreter interface.
Definition: TCling.cxx:1187
virtual const char * DataMemberInfo_Title(DataMemberInfo_t *dminfo) const
Definition: TCling.cxx:7265
virtual void LoadFunctionTemplates(TClass *cl) const
Create list of pointers to function templates for TClass cl.
Definition: TCling.cxx:3428
virtual bool MethodArgInfo_IsValid(MethodArgInfo_t *marginfo) const
Definition: TCling.cxx:7778
virtual Long_t DataMemberInfo_Property(DataMemberInfo_t *dminfo) const
Definition: TCling.cxx:7217
virtual Long_t TypedefInfo_Property(TypedefInfo_t *tinfo) const
Definition: TCling.cxx:7988
virtual void * ClassInfo_New(ClassInfo_t *info) const
Definition: TCling.cxx:6919
virtual int DisplayClass(FILE *fout, const char *name, int base, int start) const
Definition: TCling.cxx:6034
virtual const char * GetTopLevelMacroName() const
Return the file name of the current un-included interpreted file.
Definition: TCling.cxx:4324
virtual void SetDeclAttr(DeclId_t, const char *)
Definition: TCling.cxx:7284
virtual bool ClassInfo_IsValidMethod(ClassInfo_t *info, const char *method, const char *proto, Long_t *offset, ROOT::EFunctionMatchMode=ROOT::kConversionMatch) const
Definition: TCling.cxx:6895
virtual int DataMemberInfo_MaxIndex(DataMemberInfo_t *dminfo, Int_t dim) const
Definition: TCling.cxx:7193
void Execute(const char *function, const char *params, int *error=0)
Execute a global function with arguments params.
Definition: TCling.cxx:4141
const char * GetSharedLibDeps(const char *lib)
Get the list a libraries on which the specified lib depends.
Definition: TCling.cxx:5939
const char * Name
Definition: TXMLSetup.cxx:67
const clang::Decl * TCling__GetObjectDecl(TObject *obj)
Definition: TCling.cxx:571
std::set< size_t > fPayloads
Definition: TCling.h:112
virtual Long_t GetExecByteCode() const
This routines used to return the address of the internal wrapper function (of the interpreter) that w...
Definition: TCling.cxx:6102
virtual void MethodArgInfo_Delete(MethodArgInfo_t *marginfo) const
Definition: TCling.cxx:7747
std::vector< const char * > fCurExecutingMacros
Definition: TCling.h:139
virtual int TypeInfo_RefType(TypeInfo_t *) const
Definition: TCling.cxx:7902
void AddFriendToClass(clang::FunctionDecl *, clang::CXXRecordDecl *) const
Inject function as a friend into klass.
Definition: TCling.cxx:6384
virtual Long_t BaseClassInfo_Offset(BaseClassInfo_t *toBaseClassInfo, void *address, bool isDerivedObject) const
Definition: TCling.cxx:7067
Int_t UnloadLibraryMap(const char *library)
Unload library map entries coming from the specified library.
Definition: TCling.cxx:4896
virtual TEnum * CreateEnum(void *VD, TClass *cl) const
Definition: TCling.cxx:421
virtual void GenericError(const char *error) const
Let the interpreter issue a generic error, and set its error state.
Definition: TCling.cxx:6080
void ClearStack()
Delete existing temporary values.
Definition: TCling.cxx:2430
virtual void ClassInfo_Init(ClassInfo_t *info, const char *funcname) const
Definition: TCling.cxx:6846
void ResetAll()
Reset the Cling state to its initial state.
Definition: TCling.cxx:2941
int ReadRootmapFile(const char *rootmapfile, TUniqueString *uniqueString=nullptr)
Read and parse a rootmapfile in its new format, and return 0 in case of success, -1 if the file has a...
Definition: TCling.cxx:4433
const ROOT::TMetaUtils::TNormalizedCtxt & GetNormalizedContext() const
Definition: TCling.h:312
virtual void CallFunc_Init(CallFunc_t *func) const
Definition: TCling.cxx:6557
Int_t GenerateDictionary(const char *classes, const char *includes=0, const char *options=0)
Generate the dictionary for the C++ classes listed in the first argument (in a semi-colon separated l...
Definition: TCling.cxx:3694
THashTable implements a hash table to store TObject's.
Definition: THashTable.h:39
void ExecuteWithArgsAndReturn(TMethod *method, void *address, const void *args[]=0, int nargs=0, void *ret=0) const
Definition: TCling.cxx:4293
virtual DeclId_t GetDataMember(ClassInfo_t *cl, const char *name) const
Return pointer to cling Decl of global/static variable that is located at the address given by addr...
Definition: TCling.cxx:3739
virtual TypedefInfo_t * TypedefInfo_Factory() const
Definition: TCling.cxx:7939
virtual Long_t BaseClassInfo_Property(BaseClassInfo_t *bcinfo) const
Definition: TCling.cxx:7088
Bool_t CheckClassInfo(const char *name, Bool_t autoload, Bool_t isClassOrNamespaceOnly=kFALSE)
Checks if an entity with the specified name is defined in Cling.
Definition: TCling.cxx:3216
virtual void CallFunc_Exec(CallFunc_t *func, void *address) const
Definition: TCling.cxx:6467
Bool_t Declare(const char *code)
Declare code to the interpreter, without any of the interpreter actions that could trigger a re-inter...
Definition: TCling.cxx:2443
std::hash< std::string > fHashFunc
Definition: TCling.h:526
std::map< const cling::Transaction *, size_t > fTransactionHeadersMap
Definition: TCling.h:110
virtual UInt_t FuncTempInfo_TemplateMinReqArgs(FuncTempInfo_t *) const
Return the number of required template arguments of the function template described by ft_info...
Definition: TCling.cxx:7404
void GetInterpreterTypeName(const char *name, std::string &output, Bool_t full=kFALSE)
The 'name' is known to the interpreter, this function returns the internal version of this name (usua...
Definition: TCling.cxx:4108
void CreateListOfDataMembers(TClass *cl) const
Create list of pointers to data members for TClass cl.
Definition: TCling.cxx:3465
void * GetInterfaceMethodWithPrototype(TClass *cl, const char *method, const char *proto, Bool_t objectIsConst=kFALSE, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch)
Return pointer to cling interface function for a method of a class with a certain prototype...
Definition: TCling.cxx:4018
virtual void ClassInfo_DeleteArray(ClassInfo_t *info, void *arena, bool dtorOnly) const
Definition: TCling.cxx:6783
DeclId_t GetFunctionWithPrototype(ClassInfo_t *cl, const char *method, const char *proto, Bool_t objectIsConst=kFALSE, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch)
Return pointer to cling interface function for a method of a class with a certain prototype...
Definition: TCling.cxx:4063
virtual MethodInfo_t * MethodInfo_FactoryCopy(MethodInfo_t *minfo) const
Definition: TCling.cxx:7559
void ClearFileBusy()
Reset the interpreter internal state in case a previous action was not correctly terminated.
Definition: TCling.cxx:2422
static void UpdateClassInfo(char *name, Long_t tagnum)
No op: see TClingCallbacks.
Definition: TCling.cxx:5558
void CreateListOfBaseClasses(TClass *cl) const
Create list of pointers to base class(es) for TClass cl.
Definition: TCling.cxx:3359
void SetProcessLineLock(Bool_t lock=kTRUE)
Definition: TCling.h:273
virtual Long_t DataMemberInfo_Offset(DataMemberInfo_t *dminfo) const
Definition: TCling.cxx:7209
TString fSharedLibs
Definition: TCling.h:104
bool Append(const std::string &str)
Append string to the storage if not added already.
Definition: TCling.cxx:1020
virtual const char * ClassInfo_FileName(ClassInfo_t *info) const
Definition: TCling.cxx:6975
virtual const char * TypeInfo_Name(TypeInfo_t *) const
Definition: TCling.cxx:7886
virtual const char * MapCppName(const char *) const
Interface to cling function.
Definition: TCling.cxx:6165
TEnv * fMapfile
Definition: TCling.h:108
EFunctionMatchMode
Definition: TDictionary.h:155
virtual const char * GetCurrentMacroName() const
Return the file name of the currently interpreted file, included or not.
Definition: TCling.cxx:4371
virtual int SetClassAutoloading(int) const
Enable/Disable the Autoloading of libraries.
Definition: TCling.cxx:6197
ULong64_t fTransactionCount
Definition: TCling.h:138
void Execute(TMethod *, TObjArray *, int *=0)
Execute method on this object with parameters stored in the TObjArray.
Definition: TCling.h:533
void TCling__TransactionRollback(const cling::Transaction &)
Definition: TCling.cxx:549
virtual bool ClassInfo_IsBase(ClassInfo_t *info, const char *name) const
Definition: TCling.cxx:6864
virtual Long_t ClassInfo_GetBaseOffset(ClassInfo_t *fromDerived, ClassInfo_t *toBase, void *address, bool isDerivedObject) const
Definition: TCling.cxx:7075
DeclId_t GetFunction(ClassInfo_t *cl, const char *funcname)
Return pointer to cling interface function for a method of a class with a certain name...
Definition: TCling.cxx:3963
virtual int MethodInfo_NArg(MethodInfo_t *minfo) const
Definition: TCling.cxx:7582
virtual void Setgvp(Long_t) const
Interface to the cling global object pointer which was controlling the behavior of the wrapper around...
Definition: TCling.cxx:6247
Long_t ProcessLine(const char *line, EErrorCode *error=0)
Let cling process a command line.
Definition: TCling.cxx:1855
virtual Long_t ClassInfo_Property(ClassInfo_t *info) const
Definition: TCling.cxx:6951
virtual int TypedefInfo_Next(TypedefInfo_t *tinfo) const
Definition: TCling.cxx:7980
virtual bool TypeInfo_IsValid(TypeInfo_t *tinfo) const
Definition: TCling.cxx:7878
Bool_t IsProcessLineLocked() const
Definition: TCling.h:270
cling::Interpreter * GetInterpreter()
Definition: TCling.h:160
This class defines an interface to the cling C++ interpreter.
Definition: TCling.h:92
TClass *(* DictFuncPtr_t)()
Definition: Rtypes.h:75
DeclId_t GetDeclId(const llvm::GlobalValue *gv) const
Return pointer to cling DeclId for a global value.
Definition: TCling.cxx:3806
Int_t UnloadAllSharedLibraryMaps()
Unload the library map entries coming from all the loaded shared libraries.
Definition: TCling.cxx:4878
void InitRootmapFile(const char *name)
Create a resource table and read the (possibly) three resource files, i.e $ROOTSYS/etc/system (...
Definition: TCling.cxx:4536
void InspectMembers(TMemberInspector &, const void *obj, const TClass *cl, Bool_t isTransient)
Visit all members over members, recursing over base classes.
Definition: TCling.cxx:2051
virtual bool ClassInfo_IsEnum(const char *name) const
Definition: TCling.cxx:6872
std::set< size_t > fLinesHashSet
Definition: TCling.h:525
virtual Long_t DataMemberInfo_TypeProperty(DataMemberInfo_t *dminfo) const
Definition: TCling.cxx:7225
void PrintIntro()
No-op; see TRint instead.
Definition: TCling.cxx:2033
TString fRootmapLoadPath
Definition: TCling.h:107
void UpdateListOfTypes()
No op: see TClingCallbacks (used to update the list of types)
Definition: TCling.cxx:3114
virtual const char * TypeInfo_TrueName(TypeInfo_t *tinfo) const
Definition: TCling.cxx:7918
virtual std::string MethodInfo_TypeNormalizedName(MethodInfo_t *minfo) const
Definition: TCling.cxx:7664
UInt_t AutoParseImplRecurse(const char *cls, bool topLevel)
Helper routine for TCling::AutoParse implementing the actual call to the parser and looping over temp...
Definition: TCling.cxx:5191
virtual void CallFunc_SetArgs(CallFunc_t *func, const char *param) const
Definition: TCling.cxx:6647
std::vector< void * > fRegisterModuleDyLibs
Definition: TCling.h:128
Int_t AutoParse(const char *cls)
Parse the headers relative to the class Returns 1 in case of success, 0 in case of failure...
Definition: TCling.cxx:5319
virtual bool MethodInfo_IsValid(MethodInfo_t *minfo) const
Definition: TCling.cxx:7574
virtual Long_t TypeInfo_Property(TypeInfo_t *tinfo) const
Definition: TCling.cxx:7894
Int_t GetMore() const
Definition: TCling.h:179
virtual const char * DataMemberInfo_TypeTrueName(DataMemberInfo_t *dminfo) const
Definition: TCling.cxx:7249
Int_t GetExitCode() const
Definition: TCling.h:177
virtual void GetFunctionName(const clang::FunctionDecl *decl, std::string &name) const
Definition: TCling.cxx:7321
virtual void LoadEnums(TListOfEnums &cl) const
Create list of pointers to enums for TClass cl.
Definition: TCling.cxx:3383
std::set< TClass * > & GetModTClasses()
Definition: TCling.h:505
virtual int TypeInfo_Size(TypeInfo_t *tinfo) const
Definition: TCling.cxx:7910
static void UpdateAllCanvases()
Update all canvases at end the terminal input command.
Definition: TCling.cxx:5573
void TCling__UpdateListsOnCommitted(const cling::Transaction &, cling::Interpreter *)
Definition: TCling.cxx:539
virtual CallFunc_t * CallFunc_Factory() const
Definition: TCling.cxx:6526
Bool_t SetErrorMessages(Bool_t enable=kTRUE)
If error messages are disabled, the interpreter should suppress its failures and warning messages fro...
Definition: TCling.cxx:5980
virtual const char * DataMemberInfo_ValidArrayIndex(DataMemberInfo_t *dminfo) const
Definition: TCling.cxx:7273
void SaveGlobalsContext()
Save the current Cling state of global objects.
Definition: TCling.cxx:3087
void UpdateClassInfoWithDecl(const void *vTD)
Internal function. Inform a TClass about its new TagDecl or NamespaceDecl.
Definition: TCling.cxx:5485
unsigned int UInt_t
Definition: RtypesCore.h:42
virtual Long_t BaseClassInfo_Tagnum(BaseClassInfo_t *bcinfo) const
Definition: TCling.cxx:7104
TMarker * m
Definition: textangle.C:8
virtual const char * ClassInfo_Title(ClassInfo_t *info) const
Definition: TCling.cxx:7001
void UpdateListOfLoadedSharedLibraries()
Definition: TCling.cxx:2598
virtual void CallFunc_SetFunc(CallFunc_t *func, ClassInfo_t *info, const char *method, const char *params, Long_t *Offset) const
Definition: TCling.cxx:6655
virtual TypeInfo_t * MethodInfo_Type(MethodInfo_t *minfo) const
Definition: TCling.cxx:7622
Long_t Calc(const char *line, EErrorCode *error=0)
Directly execute an executable statement (e.g.
Definition: TCling.cxx:2819
Int_t RescanLibraryMap()
Scan again along the dynamic path for library maps.
Definition: TCling.cxx:4805
virtual const char * Getp2f2funcname(void *receiver) const
Definition: TCling.cxx:6120
virtual bool TypedefInfo_IsValid(TypedefInfo_t *tinfo) const
Definition: TCling.cxx:7972
virtual Bool_t LoadText(const char *text) const
Load the declarations from text into the interpreter.
Definition: TCling.cxx:6157
The ROOT global object gROOT contains a list of all defined classes.
Definition: TClass.h:81
virtual int MethodInfo_Next(MethodInfo_t *minfo) const
Definition: TCling.cxx:7598
virtual int MethodInfo_NDefaultArg(MethodInfo_t *minfo) const
Definition: TCling.cxx:7590
virtual int MethodArgInfo_Next(MethodArgInfo_t *marginfo) const
Definition: TCling.cxx:7786
void * LazyFunctionCreatorAutoload(const std::string &mangled_name)
Autoload a library based on a missing symbol.
Definition: TCling.cxx:5375
Long_t ExecuteMacro(const char *filename, EErrorCode *error=0)
Execute a cling macro.
Definition: TCling.cxx:4311
virtual void Initialize()
Initialize the interpreter, once TROOT::fInterpreter is set.
Definition: TCling.cxx:1212
Bool_t CheckClassTemplate(const char *name)
Return true if there is a class template by the given name ...
Definition: TCling.cxx:3339
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
Interface to cling function.
Definition: TCling.cxx:6682
unsigned long long GetInterpreterStateMarker() const
Definition: TCling.h:190
Long64_t entry
virtual const char * MethodInfo_GetPrototype(MethodInfo_t *minfo) const
Definition: TCling.cxx:7640
virtual void CallFunc_ExecWithArgsAndReturn(CallFunc_t *func, void *address, const void *args[]=0, int nargs=0, void *ret=0) const
Definition: TCling.cxx:6491
virtual Bool_t FuncTempInfo_IsValid(FuncTempInfo_t *) const
Check validity of a FuncTempInfo_t.
Definition: TCling.cxx:7381
void EnableAutoLoading()
Enable the automatic loading of shared libraries when a class is used that is stored in a not yet loa...
Definition: TCling.cxx:2469
Type
enumeration specifying the integration types.
Bool_t fLockProcessLine
Definition: TCling.h:117
TEnv * GetMapfile() const
Definition: TCling.h:178
virtual void CallFunc_Delete(CallFunc_t *func) const
Definition: TCling.cxx:6460
std::unordered_set< const clang::NamespaceDecl * > fNSFromRootmaps
Definition: TCling.h:115
virtual const char * BaseClassInfo_FullName(BaseClassInfo_t *bcinfo) const
Definition: TCling.cxx:7112
virtual MethodInfo_t * MethodInfo_Factory() const
Definition: TCling.cxx:7533
std::set< TClass * > fModTClasses
Definition: TCling.h:135
void EndOfLineAction()
It calls a "fantom" method to synchronize user keyboard input and ROOT prompt line.
Definition: TCling.cxx:2481
long Long_t
Definition: RtypesCore.h:50
void SetClassInfo(TClass *cl, Bool_t reload=kFALSE)
Set pointer to the TClingClassInfo in TClass.
Definition: TCling.cxx:3123
virtual const char * MethodArgInfo_DefaultValue(MethodArgInfo_t *marginfo) const
Definition: TCling.cxx:7802
virtual const char * ClassInfo_Name(ClassInfo_t *info) const
Definition: TCling.cxx:6993
bool operator()(const char *a, const char *b) const
Definition: TCling.h:131
virtual bool DataMemberInfo_IsValid(DataMemberInfo_t *dminfo) const
Definition: TCling.cxx:7185
TInterpreterValue * CreateTemporary()
The created temporary must be deleted by the caller.
Definition: TCling.cxx:6294
void GetFunctionOverloads(ClassInfo_t *cl, const char *funcname, std::vector< DeclId_t > &res) const
Insert overloads of name in cl to res.
Definition: TCling.cxx:3982
void UpdateListsOnUnloaded(const cling::Transaction &T)
Definition: TCling.cxx:5734
virtual FuncTempInfo_t * FuncTempInfo_Factory(DeclId_t declid) const
Construct a FuncTempInfo_t.
Definition: TCling.cxx:7359
virtual void FuncTempInfo_Title(FuncTempInfo_t *, TString &name) const
Return the comments associates with this function template.
Definition: TCling.cxx:7486
std::set< size_t > fLookedUpClasses
Definition: TCling.h:111
void UpdateListOfDataMembers(TClass *cl) const
Update the list of pointers to data members for TClass cl This is now a nop.
Definition: TCling.cxx:3492
void TCling__LibraryLoaded(const void *dyLibHandle, const char *canonicalName)
void UnloadClassMembers(TClass *cl, const clang::DeclContext *DC)
Helper function to go through the members of a class or namespace and unload them.
Definition: TCling.cxx:5681
double Double_t
Definition: RtypesCore.h:55
TText * text
virtual Bool_t ClassInfo_Contains(ClassInfo_t *info, DeclId_t declid) const
Return true if the entity pointed to by 'declid' is declared in the context described by 'info'...
Definition: TCling.cxx:6739
Definition: TCling.h:48
virtual const char * DataMemberInfo_Name(DataMemberInfo_t *dminfo) const
Definition: TCling.cxx:7257
virtual int DataMemberInfo_ArrayDim(DataMemberInfo_t *dminfo) const
Definition: TCling.cxx:7143
void RegisterTClassUpdate(TClass *oldcl, DictFuncPtr_t dict)
Register classes that already existed prior to their dictionary loading and that already had a ClassI...
Definition: TCling.cxx:1823
Bool_t IsAutoLoadNamespaceCandidate(const char *name)
Definition: TCling.cxx:5467
virtual void CallFunc_ResetArg(CallFunc_t *func) const
Definition: TCling.cxx:6583
virtual void FuncTempInfo_Delete(FuncTempInfo_t *) const
Delete the FuncTempInfo_t.
Definition: TCling.cxx:7350
void ResetGlobalVar(void *obj)
Reset the Cling 'user' global objects/variables state to the state saved by the last call to TCling::...
Definition: TCling.cxx:2971
unsigned long long ULong64_t
Definition: RtypesCore.h:70
Definition: TDatime.h:114
DeclId_t GetFunctionTemplate(ClassInfo_t *cl, const char *funcname)
Return pointer to cling interface function for a method of a class with a certain name...
Definition: TCling.cxx:4085
unsigned long ULong_t
Definition: RtypesCore.h:51
virtual Long64_t CallFunc_ExecInt64(CallFunc_t *func, void *address) const
Definition: TCling.cxx:6510
void Reset()
Pressing Ctrl+C should forward here.
Definition: TCling.cxx:2925
Int_t LoadLibraryMap(const char *rootmapfile=0)
Load map between class and library.
Definition: TCling.cxx:4615
void CreateListOfMethodArgs(TFunction *m) const
Create list of pointers to method arguments for TMethod m.
Definition: TCling.cxx:3499
Bool_t fAllowLibLoad
Definition: TCling.h:118
TObjArray * fRootmapFiles
Definition: TCling.h:116
void TCling__LibraryUnloaded(const void *dyLibHandle, const char *canonicalName)
double func(double *x, double *p)
Definition: stressTF1.cxx:213
void * fAutoLoadCallBack
Definition: TCling.h:137
std::set< const char * > fParsedPayloadsAddresses
Definition: TCling.h:113
ROOT::TMetaUtils::TClingLookupHelper * fLookupHelper
Definition: TCling.h:125
TClingCallbacks * fClingCallbacks
Definition: TCling.h:129
Int_t AutoLoad(const char *classname, Bool_t knowDictNotLoaded=kFALSE)
Load library containing the specified class.
Definition: TCling.cxx:5038
virtual int GetSecurityError() const
Interface to cling function.
Definition: TCling.cxx:6130
virtual void * MethodInfo_InterfaceMethod(MethodInfo_t *minfo) const
Definition: TCling.cxx:7566
void SetGetline(const char *(*getlineFunc)(const char *prompt), void(*histaddFunc)(const char *line))
Set a getline function to call when input is needed.
Definition: TCling.cxx:2872
TObject * TCling__GetObjectAddress(const char *Name, void *&LookupCtx)
Definition: TCling.cxx:567
char fPrompt[64]
Definition: TCling.h:101
virtual void ClassInfo_Delete(ClassInfo_t *info) const
Definition: TCling.cxx:6768
void RegisterModule(const char *modulename, const char **headers, const char **includePaths, const char *payloadCode, const char *fwdDeclsCode, void(*triggerFunc)(), const FwdDeclArgsToKeepCollection_t &fwdDeclsArgToSkip, const char **classesHeaders)
Inject the module named "modulename" into cling; load all headers.
Definition: TCling.cxx:1486
Int_t ReloadAllSharedLibraryMaps()
Reload the library map entries coming from all the loaded shared libraries, after first unloading the...
Definition: TCling.cxx:4817
void UpdateListOfMethods(TClass *cl) const
Update the list of pointers to method for TClass cl This is now a nop.
Definition: TCling.cxx:3483
#define name(a, b)
Definition: linkTestLib0.cpp:5
virtual const char * TypedefInfo_Name(TypedefInfo_t *tinfo) const
Definition: TCling.cxx:8012
void RecursiveRemove(TObject *obj)
Delete object from cling symbol table so it can not be used anymore.
Definition: TCling.cxx:2907
virtual int ClassInfo_Size(ClassInfo_t *info) const
Definition: TCling.cxx:6959
void UnRegisterTClassUpdate(const TClass *oldcl)
If the dictionary is loaded, we can remove the class from the list (otherwise the class might be load...
Definition: TCling.cxx:1832
virtual Double_t CallFunc_ExecDouble(CallFunc_t *func, void *address) const
Definition: TCling.cxx:6518
TString fIncludePath
Definition: TCling.h:106
Mother of all ROOT objects.
Definition: TObject.h:58
virtual bool ClassInfo_HasMethod(ClassInfo_t *info, const char *name) const
Definition: TCling.cxx:6838
virtual Long_t MethodArgInfo_Property(MethodArgInfo_t *marginfo) const
Definition: TCling.cxx:7794
void RegisterTemporary(const TInterpreterValue &value)
Definition: TCling.cxx:6302
Global functions class (global functions are obtained from CINT).
Definition: TFunction.h:30
virtual Long_t Getgvp() const
Interface to the CINT global object pointer which was controlling the behavior of the wrapper around ...
Definition: TCling.cxx:6112
void HandleNewDecl(const void *DV, bool isDeserialized, std::set< TClass * > &modifiedClasses)
Definition: TCling.cxx:450
virtual bool ClassInfo_IsLoaded(ClassInfo_t *info) const
Definition: TCling.cxx:6879
virtual DeclId_t GetDataMemberWithValue(const void *ptrvalue) const
NOT IMPLEMENTED.
Definition: TCling.cxx:3875
virtual const char * MethodInfo_Name(MethodInfo_t *minfo) const
Definition: TCling.cxx:7648
A collection of TEnum objects designed for fast access given a DeclId_t and for keep track of TEnum t...
Definition: TListOfEnums.h:36
const char * Data()
Definition: TCling.cxx:1012
virtual bool ClassInfo_IsValid(ClassInfo_t *info) const
Definition: TCling.cxx:6887
virtual Long_t ClassInfo_Tagnum(ClassInfo_t *info) const
Definition: TCling.cxx:6967
Bool_t fHeaderParsingOnDemand
Definition: TCling.h:147
Int_t fGlobalsListSerial
Definition: TCling.h:105
virtual Long_t MethodInfo_ExtraProperty(MethodInfo_t *minfo) const
Definition: TCling.cxx:7614
Each ROOT class (see TClass) has a linked list of methods.
Definition: TMethod.h:40
std::vector< std::pair< TClass *, DictFuncPtr_t > > fClassesToUpdate
Definition: TCling.h:136
virtual void CallFunc_IgnoreExtraArgs(CallFunc_t *func, bool ignore) const
Definition: TCling.cxx:6549
virtual const char * GetSTLIncludePath() const
Return the directory containing CINT's stl cintdlls.
Definition: TCling.cxx:6025
static void * fgSetOfSpecials
Definition: TCling.h:95
virtual const char * MethodInfo_TypeName(MethodInfo_t *minfo) const
Definition: TCling.cxx:7656
Int_t SetClassSharedLibs(const char *cls, const char *libs)
Register the autoloading information for a class.
Definition: TCling.cxx:4958
Bool_t IsLoaded(const char *filename) const
Return true if the file has already been loaded by cint.
Definition: TCling.cxx:2494
virtual void ClassInfo_Destruct(ClassInfo_t *info, void *arena) const
Definition: TCling.cxx:6791
virtual const char * ClassInfo_FullName(ClassInfo_t *info) const
Definition: TCling.cxx:6983
virtual void UpdateEnumConstants(TEnum *enumObj, TClass *cl) const
Definition: TCling.cxx:375
Bool_t SetSuspendAutoParsing(Bool_t value)
Suspend the Autoparsing of headers.
Definition: TCling.cxx:6223
virtual const char * BaseClassInfo_TmpltName(BaseClassInfo_t *bcinfo) const
Definition: TCling.cxx:7130
virtual const char * MethodArgInfo_Name(MethodArgInfo_t *marginfo) const
Definition: TCling.cxx:7810
Int_t fMore
Definition: TCling.h:99
virtual const char * ClassInfo_TmpltName(ClassInfo_t *info) const
Definition: TCling.cxx:7009
Bool_t IsErrorMessagesEnabled() const
If error messages are disabled, the interpreter should suppress its failures and warning messages fro...
Definition: TCling.cxx:5966
Bool_t fIsAutoParsingSuspended
Definition: TCling.h:148
static void UpdateClassInfoWork(const char *name)
Definition: TCling.cxx:5564
std::hash< std::string > fStringHashFunction
Definition: TCling.h:114
virtual void TypedefInfo_Init(TypedefInfo_t *tinfo, const char *name) const
Definition: TCling.cxx:7962
void * SetAutoLoadCallBack(void *cb)
Definition: TCling.h:164
const char * GetSharedLibs()
Return the list of shared libraries loaded into the process.
Definition: TCling.cxx:5884
virtual EReturnType MethodInfo_MethodCallReturnType(MethodInfo_t *minfo) const
Definition: TCling.cxx:7694
virtual void * FindSym(const char *entry) const
Interface to cling function.
Definition: TCling.cxx:6072
Long_t ProcessLineAsynch(const char *line, EErrorCode *error=0)
Let cling process a command line asynch.
Definition: TCling.cxx:2794
static void output(int code)
Definition: gifencode.c:226
virtual void DataMemberInfo_Delete(DataMemberInfo_t *dminfo) const
Definition: TCling.cxx:7151
const Bool_t kTRUE
Definition: Rtypes.h:91
TObject * obj
float value
Definition: math.cpp:443
void LoadMacro(const char *filename, EErrorCode *error=0)
Load a macro file in cling's memory.
Definition: TCling.cxx:2786
virtual ClassInfo_t * BaseClassInfo_ClassInfo(BaseClassInfo_t *) const
Definition: TCling.cxx:7096
const char * TypeName(const char *typeDesc)
Return the absolute type of typeDesc.
Definition: TCling.cxx:4386
virtual EReturnType MethodCallReturnType(TFunction *func) const
Definition: TCling.cxx:7683
void LibraryUnloaded(const void *dyLibHandle, const char *canonicalName)
Definition: TCling.cxx:5876
char * GetPrompt()
Definition: TCling.h:183
const Int_t n
Definition: legend1.C:16
void RewindDictionary()
Rewind Cling dictionary to the point where it was before executing the current macro.
Definition: TCling.cxx:2986
virtual MethodArgInfo_t * MethodArgInfo_FactoryCopy(MethodArgInfo_t *marginfo) const
Definition: TCling.cxx:7770
void AddIncludePath(const char *path)
Add the given path to the list of directories in which the interpreter looks for include files...
Definition: TCling.cxx:2042
void CreateListOfMethods(TClass *cl) const
Create list of pointers to methods for TClass cl.
Definition: TCling.cxx:3474
Int_t DeleteGlobal(void *obj)
Delete obj from Cling symbol table so it cannot be accessed anymore.
Definition: TCling.cxx:3000
virtual TypeInfo_t * TypeInfo_Factory() const
Definition: TCling.cxx:7846
virtual const char * MethodArgInfo_TypeName(MethodArgInfo_t *marginfo) const
Definition: TCling.cxx:7818
virtual void SetErrmsgcallback(void *p) const
Set a callback to receive error messages.
Definition: TCling.cxx:6233
void ResetGlobals()
Reset in Cling the list of global variables to the state saved by the last call to TCling::SaveGlobal...
Definition: TCling.cxx:2957
virtual const char * TypedefInfo_Title(TypedefInfo_t *tinfo) const
Definition: TCling.cxx:8020
virtual void SetAlloclockfunc(void(*)()) const
[Place holder for Mutex Lock] Provide the interpreter with a way to acquire a lock used to protect cr...
Definition: TCling.cxx:6178
virtual void CallFunc_SetArg(CallFunc_t *func, Long_t param) const
Definition: TCling.cxx:6591
virtual Long_t FuncTempInfo_Property(FuncTempInfo_t *) const
Return the property of the function template.
Definition: TCling.cxx:7414
const char * Value
Definition: TXMLSetup.cxx:73
virtual DataMemberInfo_t * DataMemberInfo_FactoryCopy(DataMemberInfo_t *dminfo) const
Definition: TCling.cxx:7177
virtual int UnloadFile(const char *path) const
Definition: TCling.cxx:6277
virtual int DataMemberInfo_Next(DataMemberInfo_t *dminfo) const
Definition: TCling.cxx:7201
std::map< size_t, std::vector< const char * > > fClassesHeadersMap
Definition: TCling.h:109
Long_t ProcessLineSynch(const char *line, EErrorCode *error=0)
Let cling process a command line synchronously, i.e we are waiting it will be finished.
Definition: TCling.cxx:2803
virtual int ClassInfo_GetMethodNArg(ClassInfo_t *info, const char *method, const char *proto, Bool_t objectIsConst=false, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch) const
Definition: TCling.cxx:6822
Bool_t IsAutoParsingSuspended() const
Definition: TCling.h:301
virtual void FuncTempInfo_Name(FuncTempInfo_t *, TString &name) const
Return the name of this function template.
Definition: TCling.cxx:7473
virtual void TypedefInfo_Delete(TypedefInfo_t *tinfo) const
Definition: TCling.cxx:7932