33#include <unordered_map> 
   34#include <unordered_set> 
   40#define TWin32SendClass char 
   81   namespace TMetaUtils {
 
   82      class TNormalizedCtxt;
 
   83      class TClingLookupHelper;
 
  157      std::unique_ptr<ROOT::TVirtualRWMutex::State> 
fState;
 
 
  360                       std::vector<std::
string>&) 
final;
 
  590   template <
typename List, 
typename Object>
 
  593      if (
O && 
O->IsValid())
 
  594         L.Unload(
O), 
O->Update(
nullptr);
 
 
  617      bool Append(
const std::string &str);
 
 
 
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
 
unsigned long long ULong64_t
 
TClass *(* DictFuncPtr_t)()
 
void TCling__LibraryLoaded(const void *dyLibHandle, const char *canonicalName)
 
void TCling__LibraryUnloaded(const void *dyLibHandle, const char *canonicalName)
 
void TCling__TransactionRollback(const cling::Transaction &)
 
void TCling__UpdateListsOnCommitted(const cling::Transaction &, cling::Interpreter *)
 
void TCling__RegisterRdictForLoadPCM(const std::string &pcmFileNameFullPath, llvm::StringRef *pcmContent)
 
const clang::Decl * TCling__GetObjectDecl(TObject *obj)
 
void TCling__UpdateListsOnUnloaded(const cling::Transaction &)
 
void TCling__InvalidateGlobal(const clang::Decl *)
 
TObject * TCling__GetObjectAddress(const char *Name, void *&LookupCtx)
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
winID h TVirtualViewer3D TVirtualGLPainter p
 
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 char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h offset
 
Option_t Option_t TPoint TPoint const char 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
 
Option_t Option_t TPoint TPoint const char text
 
TClass instances represent classes, structs and namespaces in the ROOT type system.
 
~SuspendAutoLoadingRAII()
 
SuspendAutoLoadingRAII(TCling *tcling)
 
TUniqueString(const TUniqueString &)=delete
 
bool Append(const std::string &str)
Append string to the storage if not added already.
 
std::hash< std::string > fHashFunc
 
std::set< size_t > fLinesHashSet
 
This class defines an interface to the cling C++ interpreter.
 
static Int_t DeepAutoLoadImpl(const char *cls, std::unordered_set< std::string > &visited, bool nameIsNormalized)
 
const char * MethodArgInfo_DefaultValue(MethodArgInfo_t *marginfo) const final
 
bool ClassInfo_IsScopedEnum(ClassInfo_t *info) const final
 
const char * TypeInfo_Name(TypeInfo_t *) const final
 
void * MethodInfo_InterfaceMethod(MethodInfo_t *minfo) const final
 
void LoadEnums(TListOfEnums &cl) const final
Create list of pointers to enums for TClass cl.
 
void UpdateListOfGlobals() final
No op: see TClingCallbacks (used to update the list of globals)
 
bool TypedefInfo_IsValid(TypedefInfo_t *tinfo) const final
 
Int_t AutoLoad(const char *classname, Bool_t knowDictNotLoaded=kFALSE) final
Load library containing the specified class.
 
void * GetAutoLoadCallBack() const final
 
void CallFunc_Init(CallFunc_t *func) const final
 
void SetGetline(const char *(*getlineFunc)(const char *prompt), void(*histaddFunc)(const char *line)) final
Set a getline function to call when input is needed.
 
bool LibraryLoadingFailed(const std::string &, const std::string &, bool, bool)
 
void GenericError(const char *error) const final
Let the interpreter issue a generic error, and set its error state.
 
std::vector< void * > fRegisterModuleDyLibs
 
void CallFunc_ExecWithReturn(CallFunc_t *func, void *address, void *ret) const final
 
TypeInfo_t * MethodInfo_Type(MethodInfo_t *minfo) const final
 
std::vector< std::string > fAutoLoadLibStorage
 
void CallFunc_Delete(CallFunc_t *func) const final
 
int LoadFile(const char *path) const final
Load a source file or library called path into the interpreter.
 
void ResetAll() final
Reset the Cling state to its initial state.
 
void SetDeclAttr(DeclId_t, const char *) final
 
void HandleNewDecl(const void *DV, bool isDeserialized, std::set< TClass * > &modifiedClasses)
 
void InvalidateCachedDecl(const std::tuple< TListOfDataMembers *, TListOfFunctions *, TListOfFunctionTemplates *, TListOfEnums * > &Lists, const clang::Decl *D)
Invalidate cached TCling information for the given declaration, and removed it from the appropriate o...
 
Long_t MethodInfo_Property(MethodInfo_t *minfo) const final
 
virtual void LoadFunctionTemplates(TClass *cl) const final
Create list of pointers to function templates for TClass cl.
 
bool ClassInfo_IsValidMethod(ClassInfo_t *info, const char *method, const char *proto, Longptr_t *offset, ROOT::EFunctionMatchMode=ROOT::kConversionMatch) const final
 
Long_t DataMemberInfo_Property(DataMemberInfo_t *dminfo) const final
 
int SetClassAutoparsing(int) final
Enable/Disable the Autoparsing of headers.
 
std::vector< const char * > fCurExecutingMacros
 
void CreateListOfDataMembers(TClass *cl) const final
Create list of pointers to data members for TClass cl.
 
void RewindDictionary() final
Rewind Cling dictionary to the point where it was before executing the current macro.
 
bool ClassInfo_IsValid(ClassInfo_t *info) const final
 
void UpdateListsOnCommitted(const cling::Transaction &T)
 
int TypeInfo_RefType(TypeInfo_t *) const final
 
void CreateListOfBaseClasses(TClass *cl) const final
Create list of pointers to base class(es) for TClass cl.
 
ClassInfo_t * ClassInfo_Factory(Bool_t all=kTRUE) const final
 
const char * MethodInfo_Name(MethodInfo_t *minfo) const final
 
BaseClassInfo_t * BaseClassInfo_Factory(ClassInfo_t *info) const final
 
Bool_t LoadText(const char *text) const final
Load the declarations from text into the interpreter.
 
const char * GetSharedLibDeps(const char *lib, bool tryDyld=false) final
Get the list a libraries on which the specified lib depends.
 
EReturnType MethodInfo_MethodCallReturnType(MethodInfo_t *minfo) const final
 
TObject * GetObjectAddress(const char *Name, void *&LookupCtx)
If the interpreter encounters Name, check whether that is an object ROOT could retrieve.
 
Longptr_t ProcessLineAsynch(const char *line, EErrorCode *error=nullptr)
Let cling process a command line asynch.
 
bool MethodInfo_IsValid(MethodInfo_t *minfo) const final
 
FuncTempInfo_t * FuncTempInfo_Factory(DeclId_t declid) const final
Construct a FuncTempInfo_t.
 
TypeInfo_t * TypeInfo_Factory() const final
 
bool IsClassAutoLoadingEnabled() const
Returns if class AutoLoading is currently enabled.
 
void InvalidateGlobal(const clang::Decl *D)
Invalidate cached TCling information for the given global declaration.
 
int Evaluate(const char *, TInterpreterValue &) final
Get the interpreter value corresponding to the statement.
 
std::unique_ptr< TInterpreterValue > MakeInterpreterValue() const final
 
void UpdateListOfLoadedSharedLibraries()
 
const char * TypedefInfo_Title(TypedefInfo_t *tinfo) const final
 
void CallFunc_SetFuncProto(CallFunc_t *func, ClassInfo_t *info, const char *method, const char *proto, Longptr_t *Offset, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch) const final
Interface to cling function.
 
void InitRootmapFile(const char *name)
Create a resource table and read the (possibly) three resource files, i.e.
 
Int_t AutoParse(const char *cls) final
Parse the headers relative to the class Returns 1 in case of success, 0 in case of failure.
 
bool FunctionDeclId_IsMethod(DeclId_t fdeclid) const
 
void LoadPCM(std::string pcmFileNameFullPath)
Tries to load a rdict PCM, issues diagnostics if it fails.
 
void UpdateListOfMethods(TClass *cl) const final
Update the list of pointers to method for TClass cl This is now a nop.
 
virtual ~TCling()
Destroy the interpreter interface.
 
void AddFriendToClass(clang::FunctionDecl *, clang::CXXRecordDecl *) const
Inject function as a friend into klass.
 
void PrintIntro() final
No-op; see TRint instead.
 
Bool_t fCxxModulesEnabled
 
int BaseClassInfo_Next(BaseClassInfo_t *bcinfo) const final
 
void RefreshClassInfo(TClass *cl, const clang::NamedDecl *def, bool alias)
Internal function. Actually do the update of the ClassInfo when seeing.
 
CallFunc_t * CallFunc_FactoryCopy(CallFunc_t *func) const final
 
Double_t CallFunc_ExecDouble(CallFunc_t *func, void *address) const final
 
void CallFunc_ResetArg(CallFunc_t *func) const final
 
const char * GetCurrentMacroName() const final
Return the file name of the currently interpreted file, included or not.
 
Bool_t IsLoaded(const char *filename) const final
Return true if the file has already been loaded by cint.
 
void SaveGlobalsContext() final
Save the current Cling state of global objects.
 
void CallFunc_IgnoreExtraArgs(CallFunc_t *func, bool ignore) const final
 
void ApplyToInterpreterMutex(void *delta)
Re-apply the lock count delta that TCling__ResetInterpreterMutex() caused.
 
void * LazyFunctionCreatorAutoload(const std::string &mangled_name)
Autoload a library based on a missing symbol.
 
Int_t GenerateDictionary(const char *classes, const char *includes="", const char *options=nullptr) final
Generate the dictionary for the C++ classes listed in the first argument (in a semi-colon separated l...
 
Bool_t ClassInfo_Contains(ClassInfo_t *info, DeclId_t declid) const final
Return true if the entity pointed to by 'declid' is declared in the context described by 'info'.
 
Bool_t IsLibraryLoaded(const char *libname) const final
 
Long_t GetExecByteCode() const final
This routines used to return the address of the internal wrapper function (of the interpreter) that w...
 
int DataMemberInfo_ArrayDim(DataMemberInfo_t *dminfo) const final
 
TypeInfo_t * MethodArgInfo_TypeInfo(MethodArgInfo_t *marginfo) const
 
DataMemberInfo_t * DataMemberInfo_FactoryCopy(DataMemberInfo_t *dminfo) const final
 
Bool_t HandleNewTransaction(const cling::Transaction &T)
Helper function to increase the internal Cling count of transactions that change the AST.
 
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...
 
std::map< SpecialObjectLookupCtx_t, SpecialObjectMap_t > fSpecialObjectMaps
 
int ClassInfo_Next(ClassInfo_t *info) const final
 
void SetErrmsgcallback(void *p) const final
Set a callback to receive error messages.
 
bool MethodArgInfo_IsValid(MethodArgInfo_t *marginfo) const final
 
int TypeInfo_Size(TypeInfo_t *tinfo) const final
 
Int_t DeleteGlobal(void *obj) final
Delete obj from Cling symbol table so it cannot be accessed anymore.
 
int GetSecurityError() const final
Interface to cling function.
 
void SetTempLevel(int val) const final
Create / close a scope for temporaries.
 
std::set< size_t > fPayloads
 
UInt_t FuncTempInfo_TemplateNargs(FuncTempInfo_t *) const final
Return the maximum number of template arguments of the function template described by ft_info.
 
DeclId_t GetFunctionWithPrototype(ClassInfo_t *cl, const char *method, const char *proto, Bool_t objectIsConst=kFALSE, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch) final
Return pointer to cling interface function for a method of a class with a certain prototype,...
 
TypedefInfo_t * TypedefInfo_Factory() const final
 
TObjArray * fRootmapFiles
 
bool IsVoidPointerType(const void *QualTypePtr) const
 
Longptr_t ProcessLine(const char *line, EErrorCode *error=nullptr) final
 
int ClassInfo_Size(ClassInfo_t *info) const final
 
const char * MethodArgInfo_TypeName(MethodArgInfo_t *marginfo) const final
 
cling::Interpreter * GetInterpreterImpl() const
 
Longptr_t ExecuteMacro(const char *filename, EErrorCode *error=nullptr) final
Execute a cling macro.
 
std::vector< std::pair< TClass *, DictFuncPtr_t > > fClassesToUpdate
 
int DataMemberInfo_Next(DataMemberInfo_t *dminfo) const final
 
const char * TypedefInfo_Name(TypedefInfo_t *tinfo) const final
 
void BaseClassInfo_Delete(BaseClassInfo_t *bcinfo) const final
 
Long_t MethodInfo_ExtraProperty(MethodInfo_t *minfo) const final
 
void LoadMacro(const char *filename, EErrorCode *error=nullptr) final
Load a macro file in cling's memory.
 
const char * GetClassSharedLibs(const char *cls) final
Get the list of shared libraries containing the code for class cls.
 
FuncTempInfo_t * FuncTempInfo_FactoryCopy(FuncTempInfo_t *) const final
Construct a FuncTempInfo_t.
 
int DataMemberInfo_MaxIndex(DataMemberInfo_t *dminfo, Int_t dim) const final
 
Bool_t FuncTempInfo_IsValid(FuncTempInfo_t *) const final
Check validity of a FuncTempInfo_t.
 
void AddIncludePath(const char *path) final
Add a directory to the list of directories in which the interpreter looks for include files.
 
bool ClassInfo_IsBase(ClassInfo_t *info, const char *name) const final
 
void RecursiveRemove(TObject *obj) final
Delete object from cling symbol table so it can not be used anymore.
 
const ROOT::TMetaUtils::TNormalizedCtxt & GetNormalizedContext() const
 
const char * DataMemberInfo_TypeName(DataMemberInfo_t *dminfo) const final
 
DeclId_t GetDataMemberAtAddr(const void *addr) const final
Return pointer to cling DeclId for a data member with a given name.
 
friend cling::Interpreter * TCling__GetInterpreter()
 
std::set< TClass * > fModTClasses
 
void CallFunc_SetArgArray(CallFunc_t *func, Longptr_t *paramArr, Int_t nparam) const final
 
TEnv * GetMapfile() const final
 
std::string CallFunc_GetWrapperCode(CallFunc_t *func) const final
 
void * RewindInterpreterMutex()
Reset the interpreter lock to the state it had before interpreter-related calls happened.
 
const char * MethodArgInfo_Name(MethodArgInfo_t *marginfo) const final
 
Bool_t HasPCMForLibrary(const char *libname) const final
Return true if ROOT has cxxmodules pcm for a given library name.
 
void TypedefInfo_Init(TypedefInfo_t *tinfo, const char *name) const final
 
const char * DataMemberInfo_Title(DataMemberInfo_t *dminfo) const final
 
Longptr_t CallFunc_ExecInt(CallFunc_t *func, void *address) const final
 
void ClearStack() final
Delete existing temporary values.
 
void SetAlloclockfunc(void(*)()) const final
[Place holder for Mutex Lock] Provide the interpreter with a way to acquire a lock used to protect cr...
 
Bool_t SetErrorMessages(Bool_t enable=kTRUE) final
If error messages are disabled, the interpreter should suppress its failures and warning messages fro...
 
MethodInfo_t * CallFunc_FactoryMethod(CallFunc_t *func) const final
 
bool IsUnsignedIntegerType(const void *QualTypePtr) const
 
TypedefInfo_t * TypedefInfo_FactoryCopy(TypedefInfo_t *tinfo) const final
 
void GetFunctionOverloads(ClassInfo_t *cl, const char *funcname, std::vector< DeclId_t > &res) const final
Insert overloads of name in cl to res.
 
void UnRegisterTClassUpdate(const TClass *oldcl) final
If the dictionary is loaded, we can remove the class from the list (otherwise the class might be load...
 
std::string MethodArgInfo_TypeNormalizedName(MethodArgInfo_t *marginfo) const final
 
DeclId_t GetEnum(TClass *cl, const char *name) const final
Return pointer to cling Decl of global/static variable that is located at the address given by addr.
 
Long_t MethodArgInfo_Property(MethodArgInfo_t *marginfo) const final
 
int TypedefInfo_Size(TypedefInfo_t *tinfo) const final
 
void CallFunc_ExecWithArgsAndReturn(CallFunc_t *func, void *address, const void *args[]=nullptr, int nargs=0, void *ret=nullptr) const final
 
void GetInterpreterTypeName(const char *name, std::string &output, Bool_t full=kFALSE) final
The 'name' is known to the interpreter, this function returns the internal version of this name (usua...
 
Bool_t IsAutoParsingSuspended() const final
 
std::map< std::string, llvm::StringRef > fPendingRdicts
 
static void UpdateClassInfoWork(const char *name)
 
Int_t Load(const char *filenam, Bool_t system=kFALSE) final
Load a library file in cling's memory.
 
int TypedefInfo_Next(TypedefInfo_t *tinfo) const final
 
void * GetInterfaceMethod(TClass *cl, const char *method, const char *params, Bool_t objectIsConst=kFALSE) final
Return pointer to cling interface function for a method of a class with parameters params (params is ...
 
void TypeInfo_Init(TypeInfo_t *tinfo, const char *funcname) const final
 
Bool_t SetSuspendAutoParsing(Bool_t value) final
Suspend the Autoparsing of headers.
 
int DataMemberInfo_TypeSize(DataMemberInfo_t *dminfo) const final
 
static void * fgSetOfSpecials
 
const char * ClassInfo_Title(ClassInfo_t *info) const final
 
const char * DataMemberInfo_Name(DataMemberInfo_t *dminfo) const final
 
const char * TypeName(const char *typeDesc) final
Return the absolute type of typeDesc.
 
ROOT::TMetaUtils::TNormalizedCtxt * fNormalizedCtxt
 
bool IsSignedIntegerType(const void *QualTypePtr) const
 
void ForgetMutexState() final
 
int MethodInfo_Next(MethodInfo_t *minfo) const final
 
void * SetAutoLoadCallBack(void *cb) final
 
Long_t ClassInfo_ClassProperty(ClassInfo_t *info) const final
 
void MethodInfo_Delete(MethodInfo_t *minfo) const final
Interface to cling function.
 
void MethodArgInfo_Delete(MethodArgInfo_t *marginfo) const final
 
DataMemberInfo_t * DataMemberInfo_Factory(ClassInfo_t *clinfo, TDictionary::EMemberSelection selection) const final
 
void ClassInfo_Destruct(ClassInfo_t *info, void *arena) const final
 
TClass * GetClass(const std::type_info &typeinfo, Bool_t load) const final
Demangle the name (from the typeinfo) and then request the class via the usual name based interface (...
 
Int_t UnloadAllSharedLibraryMaps() final
Unload the library map entries coming from all the loaded shared libraries.
 
void ClassInfo_Init(ClassInfo_t *info, const char *funcname) const final
 
std::set< TClass * > & GetModTClasses()
 
ClassInfo_t * BaseClassInfo_ClassInfo(BaseClassInfo_t *) const final
 
TClingCallbacks * fClingCallbacks
 
Long64_t CallFunc_ExecInt64(CallFunc_t *func, void *address) const final
 
Long_t ClassInfo_Property(ClassInfo_t *info) const final
 
Longptr_t ClassInfo_GetBaseOffset(ClassInfo_t *fromDerived, ClassInfo_t *toBase, void *address, bool isDerivedObject) const final
 
void UpdateEnumConstants(TEnum *enumObj, TClass *cl) const final
 
void ExecuteWithArgsAndReturn(TMethod *method, void *address, const void *args[]=nullptr, int nargs=0, void *ret=nullptr) const final
 
Bool_t IsErrorMessagesEnabled() const final
If error messages are disabled, the interpreter should suppress its failures and warning messages fro...
 
int DisplayIncludePath(FILE *fout) const final
Interface to cling function.
 
void TransactionRollback(const cling::Transaction &T)
 
Long_t FuncTempInfo_Property(FuncTempInfo_t *) const final
Return the property of the function template.
 
TEnum * CreateEnum(void *VD, TClass *cl) const final
 
const char * TypeInfo_TrueName(TypeInfo_t *tinfo) const final
 
Int_t UnloadLibraryMap(const char *library) final
Unload library map entries coming from the specified library.
 
void RegisterTemporary(const TInterpreterValue &value)
 
MutexStateAndRecurseCount fInitialMutex
 
const char * GetSharedLibs() final
Return the list of shared libraries loaded into the process.
 
int MethodArgInfo_Next(MethodArgInfo_t *marginfo) const final
 
void SnapshotMutexState(ROOT::TVirtualRWMutex *mtx) final
 
Long_t TypeInfo_Property(TypeInfo_t *tinfo) const final
 
static constexpr const char * kNullArgv[]
 
friend void TCling__RegisterRdictForLoadPCM(const std::string &pcmFileNameFullPath, llvm::StringRef *pcmContent)
 
const char * MethodInfo_GetPrototype(MethodInfo_t *minfo) const final
 
UInt_t FuncTempInfo_TemplateMinReqArgs(FuncTempInfo_t *) const final
Return the number of required template arguments of the function template described by ft_info.
 
std::vector< cling::Value > * fTemporaries
 
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, Bool_t lateRegistration=false, Bool_t hasCxxModule=false) final
Inject the module named "modulename" into cling; load all headers.
 
static Int_t ShallowAutoLoadImpl(const char *cls)
 
void MethodInfo_CreateSignature(MethodInfo_t *minfo, TString &signature) const final
 
Bool_t CheckClassTemplate(const char *name) final
Return true if there is a class template by the given name ...
 
void LibraryLoaded(const void *dyLibHandle, const char *canonicalName)
 
void RegisterTClassUpdate(TClass *oldcl, DictFuncPtr_t dict) final
Register classes that already existed prior to their dictionary loading and that already had a ClassI...
 
TObjArray * GetRootMapFiles() const final
 
bool DataMemberInfo_IsValid(DataMemberInfo_t *dminfo) const final
 
bool ClassInfo_IsEnum(const char *name) const final
 
int MethodInfo_NDefaultArg(MethodInfo_t *minfo) const final
 
void CreateListOfMethods(TClass *cl) const final
Create list of pointers to methods for TClass cl.
 
Int_t RescanLibraryMap() final
Scan again along the dynamic path for library maps.
 
void * SpecialObjectLookupCtx_t
 
std::map< const cling::Transaction *, size_t > fTransactionHeadersMap
 
void ReportDiagnosticsToErrorHandler(bool enable=true) final
Report diagnostics to the ROOT error handler (see TError.h).
 
const char * MethodInfo_GetMangledName(MethodInfo_t *minfo) const final
 
Bool_t fHeaderParsingOnDemand
 
bool IsIntegerType(const void *QualTypePtr) const
 
std::hash< std::string > fStringHashFunction
 
static void RemoveAndInvalidateObject(List &L, Object *O)
 
void * GetInterfaceMethodWithPrototype(TClass *cl, const char *method, const char *proto, Bool_t objectIsConst=kFALSE, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch) final
Return pointer to cling interface function for a method of a class with a certain prototype,...
 
void * ClassInfo_New(ClassInfo_t *info) const final
 
int DisplayClass(FILE *fout, const char *name, int base, int start) const final
 
virtual void GetFunctionName(const clang::Decl *decl, std::string &name) const
 
void CreateListOfMethodArgs(TFunction *m) const final
Create list of pointers to method arguments for TMethod m.
 
void Execute(TMethod *, TObjArray *, int *=nullptr) final
Execute method on this object with parameters stored in the TObjArray.
 
virtual const char * GetSTLIncludePath() const final
Return the directory containing CINT's stl cintdlls.
 
MethodArgInfo_t * MethodArgInfo_FactoryCopy(MethodArgInfo_t *marginfo) const final
 
Longptr_t BaseClassInfo_Offset(BaseClassInfo_t *toBaseClassInfo, void *address, bool isDerivedObject) const final
 
std::unordered_map< std::string, TObject * > SpecialObjectMap_t
 
ECheckClassInfo CheckClassInfo(const char *name, Bool_t autoload, Bool_t isClassOrNamespaceOnly=kFALSE) final
Checks if an entity with the specified name is defined in Cling.
 
void * FindSym(const char *entry) const final
Interface to cling function.
 
void RegisterLoadedSharedLibrary(const char *name)
Register a new shared library name with the interpreter; add it to fSharedLibs.
 
void TypeInfo_Delete(TypeInfo_t *tinfo) const final
 
int MethodInfo_NArg(MethodInfo_t *minfo) const final
 
DeclId_t GetDataMemberWithValue(const void *ptrvalue) const final
NOT IMPLEMENTED.
 
std::unordered_set< const clang::NamespaceDecl * > fNSFromRootmaps
 
EReturnType MethodCallReturnType(TFunction *func) const final
 
void ProcessClassesToUpdate()
 
DeclId_t GetFunctionWithValues(ClassInfo_t *cl, const char *method, const char *params, Bool_t objectIsConst=kFALSE) final
Return pointer to cling DeclId for a method of a class with a certain prototype, i....
 
TString GetMangledName(TClass *cl, const char *method, const char *params, Bool_t objectIsConst=kFALSE) final
Return the cling mangled name for a method of a class with parameters params (params is a string of a...
 
const char * MethodInfo_Title(MethodInfo_t *minfo) const final
 
const char * BaseClassInfo_TmpltName(BaseClassInfo_t *bcinfo) const final
 
Bool_t Declare(const char *code) final
Declare code to the interpreter, without any of the interpreter actions that could trigger a re-inter...
 
const char * BaseClassInfo_FullName(BaseClassInfo_t *bcinfo) const final
 
void CallFunc_SetArgs(CallFunc_t *func, const char *param) const final
 
int UnloadFile(const char *path) const final
 
void SetClassInfo(TClass *cl, Bool_t reload=kFALSE, Bool_t silent=kFALSE) final
Set pointer to the TClingClassInfo in TClass.
 
void CallFunc_Exec(CallFunc_t *func, void *address) const final
 
bool IsPointerType(const void *QualTypePtr) const
 
bool IsFloatingType(const void *QualTypePtr) const
 
Long_t FuncTempInfo_ExtraProperty(FuncTempInfo_t *) const final
Return the property not already defined in Property See TDictionary's EFunctionProperty.
 
bool CallFunc_IsValid(CallFunc_t *func) const final
 
const char * BaseClassInfo_Name(BaseClassInfo_t *bcinfo) const final
 
ROOT::TMetaUtils::TClingLookupHelper * fLookupHelper
 
const char * DataMemberInfo_ValidArrayIndex(DataMemberInfo_t *dminfo) const final
 
Int_t GetMore() const final
Return whether we are waiting for more input either because the collected input contains unbalanced b...
 
Bool_t fIsAutoParsingSuspended
 
std::string ToString(const char *type, void *obj) final
 
DeclId_t GetDeclId(const llvm::GlobalValue *gv) const
Return pointer to cling DeclId for a global value.
 
void Execute(const char *function, const char *params, int *error=nullptr) final
Execute a global function with arguments params.
 
bool ClassInfo_IsLoaded(ClassInfo_t *info) const final
 
Longptr_t ClassInfo_Tagnum(ClassInfo_t *info) const final
 
Long_t BaseClassInfo_Property(BaseClassInfo_t *bcinfo) const final
 
void CallFunc_SetFunc(CallFunc_t *func, ClassInfo_t *info, const char *method, const char *params, Longptr_t *Offset) const final
 
std::vector< std::string > GetUsingNamespaces(ClassInfo_t *cl) const final
Get the scopes representing using declarations of namespace.
 
const char * ClassInfo_FileName(ClassInfo_t *info) const final
 
void FuncTempInfo_Title(FuncTempInfo_t *, TString &name) const final
Return the comments associates with this function template.
 
const char * ClassInfo_TmpltName(ClassInfo_t *info) const final
 
void SaveContext() final
Save the current Cling state.
 
void LoadPCMImpl(TFile &pcmFile)
Tries to load a PCM from TFile; returns true on success.
 
Bool_t IsAutoLoadNamespaceCandidate(const clang::NamespaceDecl *nsDecl)
 
void ResetGlobals() final
Reset in Cling the list of global variables to the state saved by the last call to TCling::SaveGlobal...
 
void CodeComplete(const std::string &, size_t &, std::vector< std::string > &) final
The call to Cling's tab complition.
 
void ResetGlobalVar(void *obj) final
Reset the Cling 'user' global objects/variables state to the state saved by the last call to TCling::...
 
const char * MapCppName(const char *) const final
Interface to cling function.
 
Longptr_t Calc(const char *line, EErrorCode *error=nullptr) final
Directly execute an executable statement (e.g.
 
Int_t ReloadAllSharedLibraryMaps() final
Reload the library map entries coming from all the loaded shared libraries, after first unloading the...
 
void UpdateListOfGlobalFunctions() final
No op: see TClingCallbacks (used to update the list of global functions)
 
void DataMemberInfo_Delete(DataMemberInfo_t *dminfo) const final
 
const char * GetTopLevelMacroName() const final
Return the file name of the current un-included interpreted file.
 
void * fPrevLoadedDynLibInfo
 
void UpdateListOfDataMembers(TClass *cl) const
Update the list of pointers to data members for TClass cl This is now a nop.
 
void InspectMembers(TMemberInspector &, const void *obj, const TClass *cl, Bool_t isTransient) final
Visit all members over members, recursing over base classes.
 
Int_t SetClassSharedLibs(const char *cls, const char *libs) final
Register the AutoLoading information for a class.
 
MethodInfo_t * MethodInfo_FactoryCopy(MethodInfo_t *minfo) const final
 
std::set< const char * > fParsedPayloadsAddresses
 
CallFuncIFacePtr_t CallFunc_IFacePtr(CallFunc_t *func) const final
 
Int_t GetExitCode() const final
 
MethodArgInfo_t * MethodArgInfo_Factory() const final
 
void SetProcessLineLock(Bool_t lock=kTRUE) final
 
static void UpdateClassInfo(char *name, Long_t tagnum)
No op: see TClingCallbacks.
 
DeclId_t GetFunction(ClassInfo_t *cl, const char *funcname) final
Return pointer to cling interface function for a method of a class with a certain name.
 
void ClassInfo_Delete(ClassInfo_t *info) const final
 
std::unique_ptr< cling::Interpreter > fInterpreter
 
EDataType ClassInfo_GetUnderlyingType(ClassInfo_t *info) const final
 
void FuncTempInfo_Delete(FuncTempInfo_t *) const final
Delete the FuncTempInfo_t.
 
DeclId_t GetFunctionTemplate(ClassInfo_t *cl, const char *funcname) final
Return pointer to cling interface function for a method of a class with a certain name.
 
TCling & operator=(const TCling &)=delete
 
Int_t DeleteVariable(const char *name) final
Undeclare obj called name.
 
Longptr_t DataMemberInfo_Offset(DataMemberInfo_t *dminfo) const final
 
CallFunc_t * CallFunc_Factory() const final
 
MethodInfo_t * MethodInfo_Factory() const final
 
Long_t DataMemberInfo_TypeProperty(DataMemberInfo_t *dminfo) const final
 
void ClearFileBusy() final
Reset the interpreter internal state in case a previous action was not correctly terminated.
 
cling::MetaProcessor * GetMetaProcessorImpl() const
 
bool DiagnoseIfInterpreterException(const std::exception &e) const final
 
void SetAllocunlockfunc(void(*)()) const final
[Place holder for Mutex Unlock] Provide the interpreter with a way to release a lock used to protect ...
 
std::set< size_t > fLookedUpClasses
 
TCling(const TCling &)=delete
 
virtual void AddAvailableIndentifiers(TSeqCollection &Idents) final
 
void TypedefInfo_Delete(TypedefInfo_t *tinfo) const final
 
void Reset() final
Pressing Ctrl+C should forward here.
 
const char * TypedefInfo_TrueName(TypedefInfo_t *tinfo) const final
 
int SetClassAutoLoading(int) const final
Enable/Disable the AutoLoading of libraries.
 
const char * ClassInfo_FullName(ClassInfo_t *info) const final
 
UInt_t AutoParseImplRecurse(const char *cls, bool topLevel)
Helper routine for TCling::AutoParse implementing the actual call to the parser and looping over temp...
 
const char * MethodInfo_TypeName(MethodInfo_t *minfo) const final
 
void CallFunc_SetArg(CallFunc_t *func, Long_t param) const final
 
const char * GetIncludePath() final
Refresh the list of include paths known to the interpreter and return it with -I prepended.
 
void UpdateListsOnUnloaded(const cling::Transaction &T)
Invalidate stored TCling state for declarations included in transaction âTâ.
 
void UpdateClassInfoWithDecl(const clang::NamedDecl *ND)
Internal function. Inform a TClass about its new TagDecl or NamespaceDecl.
 
bool IsSameType(const void *QualTypePtr1, const void *QualTypePtr2) const
 
Bool_t IsProcessLineLocked() const final
 
virtual void Initialize() final
Initialize the interpreter, once TROOT::fInterpreter is set.
 
int ClassInfo_GetMethodNArg(ClassInfo_t *info, const char *method, const char *proto, Bool_t objectIsConst=false, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch) const final
 
DeclId_t GetDataMember(ClassInfo_t *cl, const char *name) const final
Return pointer to cling Decl of global/static variable that is located at the address given by addr.
 
void FuncTempInfo_Name(FuncTempInfo_t *, TString &name) const final
Return the name of this function template.
 
std::unique_ptr< cling::MetaProcessor > fMetaProcessor
 
bool TypeInfo_IsValid(TypeInfo_t *tinfo) const final
 
bool RegisterPrebuiltModulePath(const std::string &FullPath, const std::string &ModuleMapName="module.modulemap") const final
 
std::string MethodInfo_TypeNormalizedName(MethodInfo_t *minfo) const final
 
const char * ClassInfo_Name(ClassInfo_t *info) const final
 
TClass * GenerateTClass(const char *classname, Bool_t emulation, Bool_t silent=kFALSE) final
Generate a TClass for the given class.
 
ULong64_t fTransactionCount
 
bool ClassInfo_HasDefaultConstructor(ClassInfo_t *info, Bool_t testio=kFALSE) const final
 
void EndOfLineAction() final
It calls a "fantom" method to synchronize user keyboard input and ROOT prompt line.
 
TypeInfo_t * TypeInfo_FactoryCopy(TypeInfo_t *) const final
 
void * TypeInfo_QualTypePtr(TypeInfo_t *tinfo) const
 
bool ClassInfo_HasMethod(ClassInfo_t *info, const char *name) const final
 
void ClassInfo_DeleteArray(ClassInfo_t *info, void *arena, bool dtorOnly) const final
 
std::map< size_t, std::vector< const char * > > fClassesHeadersMap
 
const char * DataMemberInfo_TypeTrueName(DataMemberInfo_t *dminfo) const final
 
virtual void ShutDown() final
 
unsigned long long GetInterpreterStateMarker() const final
 
void UpdateListOfTypes() final
No op: see TClingCallbacks (used to update the list of types)
 
Long_t TypedefInfo_Property(TypedefInfo_t *tinfo) const final
 
void RegisterRdictForLoadPCM(const std::string &pcmFileNameFullPath, llvm::StringRef *pcmContent)
Register Rdict data for future loading by LoadPCM;.
 
Longptr_t ProcessLineSynch(const char *line, EErrorCode *error=nullptr) final
Let cling process a command line synchronously, i.e we are waiting it will be finished.
 
TString GetMangledNameWithPrototype(TClass *cl, const char *method, const char *proto, Bool_t objectIsConst=kFALSE, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch) final
Return the cling mangled name for a method of a class with a certain prototype, i....
 
static void UpdateAllCanvases()
Update all canvases at end the terminal input command.
 
Int_t LoadLibraryMap(const char *rootmapfile=nullptr) final
Load map between class and library.
 
Longptr_t BaseClassInfo_Tagnum(BaseClassInfo_t *bcinfo) const final
 
void LibraryUnloaded(const void *dyLibHandle, const char *canonicalName)
 
This class defines an abstract interface that must be implemented by all classes that contain diction...
 
The TEnum class implements the enum type.
 
The TEnv class reads config files, by default named .rootrc.
 
A ROOT file is an on-disk file, usually with extension .root, that stores objects in a file-system-li...
 
Global functions class (global functions are obtained from CINT).
 
THashTable implements a hash table to store TObject's.
 
This class defines an abstract interface to a generic command line interpreter.
 
std::vector< std::pair< std::string, int > > FwdDeclArgsToKeepCollection_t
 
TDictionary::DeclId_t DeclId_t
 
A collection of TDataMember objects designed for fast access given a DeclId_t and for keep track of T...
 
A collection of TEnum objects designed for fast access given a DeclId_t and for keep track of TEnum t...
 
A collection of TFunction objects designed for fast access given a DeclId_t and for keep track of TFu...
 
A collection of TFunction objects designed for fast access given a DeclId_t and for keep track of TFu...
 
Abstract base class for accessing the data-members of a class.
 
Each ROOT class (see TClass) has a linked list of methods.
 
Mother of all ROOT objects.
 
Sequenceable collection abstract base class.
 
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
 
State as returned by GetStateDelta() that can be passed to Restore()
 
bool operator()(const char *a, const char *b) const
 
std::unique_ptr< StateDelta > fDelta
 
MutexStateAndRecurseCount fInitialState
 
std::unique_ptr< ROOT::TVirtualRWMutex::State > fState
State of gCoreMutex when the first interpreter-related function was invoked.
 
Int_t fRecurseCount
Interpreter-related functions will push the "entry" lock state to *this.