Logo ROOT  
Reference Guide
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. More...
virtual ~TIsAProxy ()
 Standard destructor. More...
virtual TClassoperator() (const void *obj)
 IsA callback. More...
virtual void SetClass (TClass *cl)
 Set class pointer This method is not thread safe. More...
- Public Member Functions inherited from TVirtualIsAProxy
virtual ~TVirtualIsAProxy ()
virtual TClassoperator() (const void *obj)=0
virtual void SetClass (TClass *cl)=0

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

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

Private Attributes

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:

Member Typedef Documentation

◆ Atomic_t

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

Definition at line 29 of file TIsAProxy.h.

Constructor & Destructor Documentation

◆ TIsAProxy() [1/2]

TIsAProxy::TIsAProxy ( const TIsAProxy )

◆ TIsAProxy() [2/2]

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

Standard initializing constructor.

Definition at line 48 of file TIsAProxy.cxx.

◆ ~TIsAProxy()

TIsAProxy::~TIsAProxy ( )

Standard destructor.

Definition at line 63 of file TIsAProxy.cxx.

Member Function Documentation

◆ CacheSubType()

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

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

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)

IsA callback.

Implements TVirtualIsAProxy.

Definition at line 85 of file TIsAProxy.cxx.

◆ operator=()

TIsAProxy & TIsAProxy::operator= ( const TIsAProxy )

◆ SetClass()

void TIsAProxy::SetClass ( TClass cl)

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

Definition at line 39 of file TIsAProxy.h.

◆ fgMaxLastSlot

constexpr UInt_t TIsAProxy::fgMaxLastSlot = 8

Definition at line 36 of file TIsAProxy.h.

◆ fInit

Atomic_t<Bool_t> TIsAProxy::fInit

Definition at line 45 of file TIsAProxy.h.

◆ fLasts

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

Definition at line 40 of file TIsAProxy.h.

◆ fNextLastSlot

Atomic_t<UChar_t> TIsAProxy::fNextLastSlot

Definition at line 44 of file TIsAProxy.h.

◆ fSubTypes

Char_t TIsAProxy::fSubTypes[72]

Definition at line 41 of file TIsAProxy.h.

◆ fSubTypesReaders

Atomic_t<UInt_t> TIsAProxy::fSubTypesReaders

Definition at line 42 of file TIsAProxy.h.

◆ fSubTypesWriteLockTaken

Atomic_t<Bool_t> TIsAProxy::fSubTypesWriteLockTaken

Definition at line 43 of file TIsAProxy.h.

◆ fType

const std::type_info* TIsAProxy::fType

Definition at line 38 of file TIsAProxy.h.

◆ fVirtual

Bool_t TIsAProxy::fVirtual

Definition at line 46 of file TIsAProxy.h.

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