29 template <
typename T>
using Atomic_t = std::atomic<T>;
83 return obj==0 ?
fClass : ((
const T*)obj)->IsA();
Binding & operator=(OUT(*fun)(void))
The ROOT global object gROOT contains a list of all defined classes.
virtual TClass * operator()(const void *obj)
virtual ~TInstrumentedIsAProxy()
TInstrumentedIsAProxy(const TInstrumentedIsAProxy &iip)
virtual void SetClass(TClass *cl)
TInstrumentedIsAProxy(TClass *cl)
TInstrumentedIsAProxy & operator=(const TInstrumentedIsAProxy &iip)
TIsAProxy implementation class.
Atomic_t< UInt_t > fSubTypesReaders
void * CacheSubType(const std::type_info *, TClass *)
Record the TClass found for a std::type_info, so that we can retrieved it faster.
virtual void SetClass(TClass *cl)
Set class pointer This method is not thread safe.
virtual ~TIsAProxy()
Standard destructor.
std::atomic< T > Atomic_t
TIsAProxy & operator=(const TIsAProxy &)=delete
virtual TClass * operator()(const void *obj)
IsA callback.
const std::type_info * fType
Atomic_t< Bool_t > fSubTypesWriteLockTaken
void * FindSubType(const std::type_info *) const
See if we have already cached the TClass that correspond to this std::type_info.
Atomic_t< TClass * > fClass
TIsAProxy(const TIsAProxy &)=delete