Logo ROOT  
Reference Guide
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.

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:
TVirtualIsAProxy

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 176 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 146 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

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.


The documentation for this class was generated from the following files: