Logo ROOT  
Reference Guide
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Loading...
Searching...
No Matches
TIsAProxy Class Reference

TIsAProxy implementation class.

Definition at line 27 of file TIsAProxy.h.

Public Member Functions

 TIsAProxy (const std::type_info &typ)
 Standard initializing constructor.
 
virtual ~TIsAProxy ()
 Standard destructor.
 
TClassoperator() (const void *obj) override
 IsA callback.
 
void SetClass (TClass *cl) override
 Set class pointer This method is not thread safe.
 
- Public Member Functions inherited from TVirtualIsAProxy
virtual ~TVirtualIsAProxy ()
 

Protected Member Functions

 TIsAProxy (const TIsAProxy &)=delete
 
TIsAProxyoperator= (const TIsAProxy &)=delete
 

Private Types

template<typename T >
using Atomic_t = std::atomic<T>
 

Private Member Functions

void * CacheSubType (const std::type_info *, TClass *)
 Record the TClass found for a std::type_info, so that we can retrieved it faster.
 
void * FindSubType (const std::type_info *) const
 See if we have already cached the TClass that correspond to this std::type_info.
 

Private Attributes

TClassfClass
 
Atomic_t< Bool_tfInit
 
Atomic_t< void * > fLasts [fgMaxLastSlot]
 
Atomic_t< UChar_tfNextLastSlot
 
Char_t fSubTypes [72]
 
Atomic_t< UInt_tfSubTypesReaders
 
Atomic_t< Bool_tfSubTypesWriteLockTaken
 
const std::type_info * fType
 
Bool_t fVirtual
 

Static Private Attributes

static constexpr UInt_t fgMaxLastSlot = 8
 

#include <TIsAProxy.h>

Inheritance diagram for TIsAProxy:
[legend]

Member Typedef Documentation

◆ Atomic_t

template<typename T >
using TIsAProxy::Atomic_t = std::atomic<T>
private

Definition at line 29 of file TIsAProxy.h.

Constructor & Destructor Documentation

◆ TIsAProxy() [1/2]

TIsAProxy::TIsAProxy ( const TIsAProxy & )
protecteddelete

◆ TIsAProxy() [2/2]

TIsAProxy::TIsAProxy ( const std::type_info & typ)

Standard initializing constructor.

Definition at line 48 of file TIsAProxy.cxx.

◆ ~TIsAProxy()

TIsAProxy::~TIsAProxy ( )
virtual

Standard destructor.

Definition at line 63 of file TIsAProxy.cxx.

Member Function Documentation

◆ CacheSubType()

void * TIsAProxy::CacheSubType ( const std::type_info * type,
TClass * cls )
private

Record the TClass found for a std::type_info, so that we can retrieved it faster.

Definition at line 174 of file TIsAProxy.cxx.

◆ FindSubType()

void * TIsAProxy::FindSubType ( const std::type_info * type) const
inlineprivate

See if we have already cached the TClass that correspond to this std::type_info.

Definition at line 144 of file TIsAProxy.cxx.

◆ operator()()

TClass * TIsAProxy::operator() ( const void * obj)
overridevirtual

IsA callback.

Implements TVirtualIsAProxy.

Definition at line 85 of file TIsAProxy.cxx.

◆ operator=()

TIsAProxy & TIsAProxy::operator= ( const TIsAProxy & )
protecteddelete

◆ SetClass()

void TIsAProxy::SetClass ( TClass * cl)
overridevirtual

Set class pointer This method is not thread safe.

Implements TVirtualIsAProxy.

Definition at line 74 of file TIsAProxy.cxx.

Member Data Documentation

◆ fClass

TClass* TIsAProxy::fClass
private

Definition at line 39 of file TIsAProxy.h.

◆ fgMaxLastSlot

constexpr UInt_t TIsAProxy::fgMaxLastSlot = 8
staticconstexprprivate

Definition at line 36 of file TIsAProxy.h.

◆ fInit

Atomic_t<Bool_t> TIsAProxy::fInit
private

Definition at line 45 of file TIsAProxy.h.

◆ fLasts

Atomic_t<void*> TIsAProxy::fLasts[fgMaxLastSlot]
private

Definition at line 40 of file TIsAProxy.h.

◆ fNextLastSlot

Atomic_t<UChar_t> TIsAProxy::fNextLastSlot
private

Definition at line 44 of file TIsAProxy.h.

◆ fSubTypes

Char_t TIsAProxy::fSubTypes[72]
private

Definition at line 41 of file TIsAProxy.h.

◆ fSubTypesReaders

Atomic_t<UInt_t> TIsAProxy::fSubTypesReaders
mutableprivate

Definition at line 42 of file TIsAProxy.h.

◆ fSubTypesWriteLockTaken

Atomic_t<Bool_t> TIsAProxy::fSubTypesWriteLockTaken
private

Definition at line 43 of file TIsAProxy.h.

◆ fType

const std::type_info* TIsAProxy::fType
private

Definition at line 38 of file TIsAProxy.h.

◆ fVirtual

Bool_t TIsAProxy::fVirtual
private

Definition at line 46 of file TIsAProxy.h.

  • core/meta/inc/TIsAProxy.h
  • core/meta/src/TIsAProxy.cxx