Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TEmulatedMapProxy Class Reference

Streamer around a map container.

For optimization reasons this functionality is separated from the TEmulatedProxy.

Definition at line 16 of file TEmulatedMapProxy.h.

Public Member Functions

 TEmulatedMapProxy (const char *cl_name, Bool_t silent)
 
 TEmulatedMapProxy (const TEmulatedMapProxy &copy)
 
 ~TEmulatedMapProxy () override
 
void * At (UInt_t idx) override
 Return the address of the value at index idx
 
TVirtualCollectionProxyGenerate () const override
 Returns a clean object of the actual class that derives from TVirtualCollectionProxy.
 
void ReadBuffer (TBuffer &buff, void *pObj) override
 
void ReadBuffer (TBuffer &buff, void *pObj, const TClass *onfile) override
 
UInt_t Size () const override
 Return the current number of elements in the container.
 
void Streamer (TBuffer &buff, void *pObj, int siz) override
 Streamer I/O overload.
 
void Streamer (TBuffer &refBuffer) override
 Streamer Function.
 
- Public Member Functions inherited from TEmulatedCollectionProxy
 TEmulatedCollectionProxy (const char *cl_name, Bool_t silent)
 
 TEmulatedCollectionProxy (const TEmulatedCollectionProxy &copy)
 
 ~TEmulatedCollectionProxy () override
 
void * Allocate (UInt_t n, Bool_t forceDelete) override
 Allocates space for storing at least n elements.
 
void Clear (const char *opt="") override
 Clear the container.
 
void Commit (void *env) override
 Commits pending elements in a staging area (see Allocate() for more information).
 
void DeleteArray (void *p, Bool_t dtorOnly=kFALSE) const override
 Execute the container array destructor.
 
void Destructor (void *p, Bool_t dtorOnly=kFALSE) const override
 Execute the container destructor.
 
void Insert (const void *data, void *container, size_t size) override
 Insert data into the container where data is a C-style array of the actual type contained in the collection of the given size.
 
Bool_t IsValid () const
 
void * New () const override
 Construct a new container object and return its address.
 
void * New (void *memory) const override
 Construct a new container object at the address given by arena
 
void * NewArray (Int_t nElements) const override
 Construct an array of nElements container objects and return the base address of the array.
 
void * NewArray (Int_t nElements, void *memory) const override
 Construct an array of nElements container objects at the address given by arena
 
TClass::ObjectPtr NewObject () const override
 Construct a new container object and return its address.
 
TClass::ObjectPtr NewObject (void *memory) const override
 Construct a new container object at the address given by arena
 
TClass::ObjectPtr NewObjectArray (Int_t nElements) const override
 Construct an array of nElements container objects and return the base address of the array.
 
TClass::ObjectPtr NewObjectArray (Int_t nElements, void *memory) const override
 Construct an array of nElements container objects at the address given by arena
 
void Resize (UInt_t n, Bool_t force_delete) override
 Resize the container.
 
UInt_t Sizeof () const override
 Return the sizeof() of the collection object.
 
- Public Member Functions inherited from TGenCollectionProxy
 TGenCollectionProxy (const ROOT::Detail::TCollectionProxyInfo &info, TClass *cl)
 Build a proxy for a collection whose type is described by 'collectionClass'.
 
 TGenCollectionProxy (const TGenCollectionProxy &copy)
 Build a proxy for an emulated container.
 
 TGenCollectionProxy (Info_t typ, size_t iter_size)
 Build a proxy for a collection whose type is described by 'collectionClass'.
 
 ~TGenCollectionProxy () override
 Standard destructor.
 
void * Allocate (UInt_t n, Bool_t forceDelete) override
 Allocate the needed space.
 
void * At (UInt_t idx) override
 Return the address of the value at index 'idx'.
 
void Clear (const char *opt="") override
 Clear the emulated collection.
 
void Commit (void *env) override
 Commit the change.
 
TVirtualCollectionProxyGenerate () const override
 Virtual copy constructor.
 
TClassGetCollectionClass () const override
 Return a pointer to the TClass representing the container.
 
Int_t GetCollectionType () const override
 Return the type of collection see TClassEdit::ESTLType.
 
TStreamerInfoActions::TActionSequenceGetConversionReadMemberWiseActions (TClass *oldClass, Int_t version) override
 Return the set of action necessary to stream in this collection member-wise coming from the old value class layout refered to by 'version'.
 
CopyIterator_t GetFunctionCopyIterator (Bool_t read=kTRUE) override
 See typedef void (*CopyIterator_t)(void *&dest, const void *source); Copy the iterator source, into dest.
 
CreateIterators_t GetFunctionCreateIterators (Bool_t read=kTRUE) override
 See typedef void (*CreateIterators_t)(void *collection, void *&begin_arena, void *&end_arena); begin_arena and end_arena should contain the location of memory arena of size fgIteratorSize.
 
DeleteIterator_t GetFunctionDeleteIterator (Bool_t read=kTRUE) override
 See typedef void (*DeleteIterator_t)(void *iter); If the sizeof iterator is greater than fgIteratorArenaSize, call delete on the addresses, Otherwise just call the iterator's destructor.
 
DeleteTwoIterators_t GetFunctionDeleteTwoIterators (Bool_t read=kTRUE) override
 See typedef void (*DeleteTwoIterators_t)(void *begin, void *end); If the sizeof iterator is greater than fgIteratorArenaSize, call delete on the addresses, Otherwise just call the iterator's destructor.
 
Next_t GetFunctionNext (Bool_t read=kTRUE) override
 See typedef void* (*Next_t)(void *iter, void *end); iter and end should be pointer to respectively an iterator to be incremented and the result of colleciton.end() 'Next' will increment the iterator 'iter' and return 0 if the iterator reached the end.
 
ULong_t GetIncrement () const override
 Return the offset between two consecutive value_types (memory layout).
 
virtual TClassGetOnFileClass () const
 
TStreamerInfoActions::TActionSequenceGetReadMemberWiseActions (Int_t version) override
 Return the set of action necessary to stream in this collection member-wise coming from the old value class layout refered to by 'version'.
 
EDataType GetType () const override
 If the content is a simple numerical value, return its type (see TDataType)
 
TClassGetValueClass () const override
 Return a pointer to the TClass representing the content.
 
TStreamerInfoActions::TActionSequenceGetWriteMemberWiseActions () override
 Return the set of action necessary to stream out this collection member-wise.
 
Bool_t HasPointers () const override
 Return true if the content is of type 'pointer to'.
 
void Insert (const void *data, void *container, size_t size) override
 Insert data into the container where data is a C-style array of the actual type contained in the collection of the given size.
 
virtual void operator() (TBuffer &refBuffer, void *pObject)
 TClassStreamer IO overload.
 
void PopProxy () override
 Remove the last object.
 
void PushProxy (void *objstart) override
 Add an object.
 
Bool_t Reset () override
 Reset the info gathered from StreamerInfos and value's TClass.
 
virtual void SetOnFileClass (TClass *cl)
 
UInt_t Size () const override
 Return the current size of the container.
 
UInt_t Sizeof () const override
 Return the sizeof the collection object.
 
- Public Member Functions inherited from TVirtualCollectionProxy
 TVirtualCollectionProxy ()
 
 TVirtualCollectionProxy (TClass *cl)
 
virtual ~TVirtualCollectionProxy ()
 
virtual Int_t GetProperties () const
 Return miscallenous properties of the proxy (see TVirtualCollectionProxy::EProperty)
 
char * operator[] (UInt_t idx) const
 Return the address of the value at index idx
 

Protected Member Functions

void ReadMap (UInt_t nElements, TBuffer &b)
 
void WriteMap (UInt_t nElements, TBuffer &b)
 
- Protected Member Functions inherited from TEmulatedCollectionProxy
void Expand (UInt_t nCurr, UInt_t left)
 
TGenCollectionProxyInitializeEx (Bool_t silent) override
 Proxy initializer.
 
void ReadItems (int nElements, TBuffer &b)
 
void Shrink (UInt_t nCurr, UInt_t left, Bool_t force)
 
void WriteItems (int nElements, TBuffer &b)
 
- Protected Member Functions inherited from TGenCollectionProxy
void CheckFunctions () const
 Check existence of function pointers.
 
virtual void DeleteItem (Bool_t force, void *ptr) const
 Call to delete/destruct individual item.
 
TGenCollectionProxyInitialize (Bool_t silent) const
 Proxy initializer.
 

Private Member Functions

TEmulatedMapProxyoperator= (const TEmulatedMapProxy &rhs)
 

Additional Inherited Members

- Public Types inherited from TEmulatedCollectionProxy
typedef std::vector< char > Cont_t
 
typedef Cont_tPCont_t
 
- Public Types inherited from TGenCollectionProxy
enum  { kBIT_ISSTRING = 0x20000000 , kBIT_ISTSTRING = 0x40000000 }
 
typedef const std::type_info & Info_t
 
- Public Types inherited from TVirtualCollectionProxy
typedef void *(* CopyIterator_t) (void *dest, const void *source)
 Copy the iterator source into dest.
 
typedef void(* CreateIterators_t) (void *collection, void **begin_arena, void **end_arena, TVirtualCollectionProxy *proxy)
 *begin_arena and *end_arena should contain the location of a memory arena of size fgIteratorArenaSize.
 
typedef void(* DeleteIterator_t) (void *iter)
 If the size of the iterator is greater than fgIteratorArenaSize, call delete on the addresses; otherwise, just call the iterator's destructor.
 
typedef void(* DeleteTwoIterators_t) (void *begin, void *end)
 
enum  EProperty { kIsAssociative = (1ULL << ( 2 )) , kIsEmulated = (1ULL << ( 3 )) , kNeedDelete = (1ULL << ( 4 )) , kCustomAlloc = (1ULL << ( 5 )) }
 
typedef void *(* Next_t) (void *iter, const void *end)
 iter and end should be pointers to an iterator to be incremented and an iterator that points to the end of the collection, respectively.
 
- Static Public Attributes inherited from TVirtualCollectionProxy
static const Int_t fgIteratorArenaSize = 16
 The size of a small buffer that can be allocated on the stack to store iterator-specific information.
 
- Protected Types inherited from TGenCollectionProxy
typedef void *(* ArrIterfunc_t) (void *from, size_t size)
 
typedef void *(* Collectfunc_t) (void *from, void *to)
 
typedef ROOT::Detail::TCollectionProxyInfo::Environ< char[64]> Env_t
 
typedef ROOT::Detail::TCollectionProxyInfo::EnvironBase EnvironBase_t
 
typedef void *(* Feedfunc_t) (void *from, void *to, size_t size)
 
typedef std::vector< EnvironBase_t * > Proxies_t
 
typedef void(* Sizing_t) (void *obj, size_t size)
 
typedef std::vector< TStaging * > Staged_t
 Collection of pre-allocated staged array for associative containers.
 
- Protected Attributes inherited from TGenCollectionProxy
Method fClear
 Method cache for container accessors: clear container.
 
Collectfunc_t fCollect
 Method to collect objects from container.
 
ArrIterfunc_t fConstruct
 Container accessors: block construct.
 
std::map< std::string, TObjArray * > * fConversionReadMemberWise
 Array of bundle of TStreamerInfoActions to stream out (read) derived from another class.
 
Method0 fCreateEnv
 Method to allocate an Environment holder.
 
Sizing_t fDestruct
 Container accessors: block destruct.
 
EnvironBase_tfEnv
 Address of the currently proxied object.
 
Feedfunc_t fFeed
 Container accessors: block feed.
 
Method fFirst
 Container accessors: generic iteration: first.
 
CopyIterator_t fFunctionCopyIterator
 
CreateIterators_t fFunctionCreateIterators
 
DeleteIterator_t fFunctionDeleteIterator
 
DeleteTwoIterators_t fFunctionDeleteTwoIterators
 
Next_t fFunctionNextIterator
 
ValuefKey
 Descriptor of the key_type.
 
std::string fName
 Name of the class being proxied.
 
Method fNext
 Container accessors: generic iteration: next.
 
TClassfOnFileClass
 On file class.
 
Bool_t fPointers
 Flag to indicate if containee has pointers (key or value)
 
Proxies_t fProxyKept
 Optimization: Keep proxies once they were created.
 
Proxies_t fProxyList
 Stack of recursive proxies.
 
TObjArrayfReadMemberWise
 Array of bundle of TStreamerInfoActions to stream out (read)
 
Sizing_t fResize
 Container accessors: resize container.
 
Method fSize
 Container accessors: size of container.
 
Staged_t fStaged
 Optimization: Keep staged array once they were created.
 
int fSTL_type
 STL container type.
 
Info_t fTypeinfo
 Type information.
 
ValuefVal
 Descriptor of the Value_type.
 
int fValDiff
 Offset between two consecutive value_types (memory layout).
 
int fValOffset
 Offset from key to value (in maps)
 
std::atomic< Value * > fValue
 Descriptor of the container value type.
 
TStreamerInfoActions::TActionSequencefWriteMemberWise
 
- Protected Attributes inherited from TVirtualCollectionProxy
TClassRef fClass
 
UInt_t fProperties
 

#include <TEmulatedMapProxy.h>

Inheritance diagram for TEmulatedMapProxy:
[legend]

Constructor & Destructor Documentation

◆ TEmulatedMapProxy() [1/2]

TEmulatedMapProxy::TEmulatedMapProxy ( const TEmulatedMapProxy copy)

Definition at line 39 of file TEmulatedMapProxy.cxx.

◆ TEmulatedMapProxy() [2/2]

TEmulatedMapProxy::TEmulatedMapProxy ( const char *  cl_name,
Bool_t  silent 
)

Definition at line 48 of file TEmulatedMapProxy.cxx.

◆ ~TEmulatedMapProxy()

TEmulatedMapProxy::~TEmulatedMapProxy ( )
override

Definition at line 57 of file TEmulatedMapProxy.cxx.

Member Function Documentation

◆ At()

void * TEmulatedMapProxy::At ( UInt_t  idx)
overridevirtual

Return the address of the value at index idx

Reimplemented from TEmulatedCollectionProxy.

Definition at line 69 of file TEmulatedMapProxy.cxx.

◆ Generate()

TVirtualCollectionProxy * TEmulatedMapProxy::Generate ( ) const
overridevirtual

Returns a clean object of the actual class that derives from TVirtualCollectionProxy.

The caller is responsible for deleting the returned object.

Reimplemented from TEmulatedCollectionProxy.

Definition at line 62 of file TEmulatedMapProxy.cxx.

◆ operator=()

TEmulatedMapProxy & TEmulatedMapProxy::operator= ( const TEmulatedMapProxy rhs)
private

◆ ReadBuffer() [1/2]

void TEmulatedMapProxy::ReadBuffer ( TBuffer buff,
void *  pObj 
)
overridevirtual

Reimplemented from TEmulatedCollectionProxy.

Definition at line 222 of file TEmulatedMapProxy.cxx.

◆ ReadBuffer() [2/2]

void TEmulatedMapProxy::ReadBuffer ( TBuffer buff,
void *  pObj,
const TClass onfile 
)
overridevirtual

Reimplemented from TEmulatedCollectionProxy.

Definition at line 214 of file TEmulatedMapProxy.cxx.

◆ ReadMap()

void TEmulatedMapProxy::ReadMap ( UInt_t  nElements,
TBuffer b 
)
protected

Definition at line 91 of file TEmulatedMapProxy.cxx.

◆ Size()

UInt_t TEmulatedMapProxy::Size ( ) const
overridevirtual

Return the current number of elements in the container.

Reimplemented from TEmulatedCollectionProxy.

Definition at line 80 of file TEmulatedMapProxy.cxx.

◆ Streamer() [1/2]

void TEmulatedMapProxy::Streamer ( TBuffer refBuffer,
void *  pObject,
int  siz 
)
inlineoverridevirtual

Streamer I/O overload.

Reimplemented from TEmulatedCollectionProxy.

Definition at line 54 of file TEmulatedMapProxy.h.

◆ Streamer() [2/2]

void TEmulatedMapProxy::Streamer ( TBuffer refBuffer)
overridevirtual

Streamer Function.

Reimplemented from TEmulatedCollectionProxy.

Definition at line 237 of file TEmulatedMapProxy.cxx.

◆ WriteMap()

void TEmulatedMapProxy::WriteMap ( UInt_t  nElements,
TBuffer b 
)
protected

Definition at line 155 of file TEmulatedMapProxy.cxx.

Libraries for TEmulatedMapProxy:

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