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 ©) | |
~TEmulatedMapProxy () override | |
void * | At (UInt_t idx) override |
Return the address of the value at index idx | |
TVirtualCollectionProxy * | Generate () 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 ©) | |
~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 ©) | |
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. | |
TVirtualCollectionProxy * | Generate () const override |
Virtual copy constructor. | |
TClass * | GetCollectionClass () 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::TActionSequence * | GetConversionReadMemberWiseActions (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 TClass * | GetOnFileClass () const |
TStreamerInfoActions::TActionSequence * | GetReadMemberWiseActions (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) | |
TClass * | GetValueClass () const override |
Return a pointer to the TClass representing the content. | |
TStreamerInfoActions::TActionSequence * | GetWriteMemberWiseActions () 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) |
TGenCollectionProxy * | InitializeEx (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. | |
TGenCollectionProxy * | Initialize (Bool_t silent) const |
Proxy initializer. | |
Private Member Functions | |
TEmulatedMapProxy & | operator= (const TEmulatedMapProxy &rhs) |
Additional Inherited Members | |
Public Types inherited from TEmulatedCollectionProxy | |
typedef std::vector< char > | Cont_t |
typedef Cont_t * | PCont_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_t * | fEnv |
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 |
Value * | fKey |
Descriptor of the key_type. | |
std::string | fName |
Name of the class being proxied. | |
Method | fNext |
Container accessors: generic iteration: next. | |
TClass * | fOnFileClass |
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. | |
TObjArray * | fReadMemberWise |
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. | |
Value * | fVal |
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::TActionSequence * | fWriteMemberWise |
Protected Attributes inherited from TVirtualCollectionProxy | |
TClassRef | fClass |
UInt_t | fProperties |
#include <TEmulatedMapProxy.h>
TEmulatedMapProxy::TEmulatedMapProxy | ( | const TEmulatedMapProxy & | copy | ) |
Definition at line 39 of file TEmulatedMapProxy.cxx.
TEmulatedMapProxy::TEmulatedMapProxy | ( | const char * | cl_name, |
Bool_t | silent | ||
) |
Definition at line 48 of file TEmulatedMapProxy.cxx.
|
override |
Definition at line 57 of file TEmulatedMapProxy.cxx.
|
overridevirtual |
Return the address of the value at index idx
Reimplemented from TEmulatedCollectionProxy.
Definition at line 69 of file TEmulatedMapProxy.cxx.
|
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.
|
private |
|
overridevirtual |
Reimplemented from TEmulatedCollectionProxy.
Definition at line 222 of file TEmulatedMapProxy.cxx.
|
overridevirtual |
Reimplemented from TEmulatedCollectionProxy.
Definition at line 214 of file TEmulatedMapProxy.cxx.
Definition at line 91 of file TEmulatedMapProxy.cxx.
|
overridevirtual |
Return the current number of elements in the container.
Reimplemented from TEmulatedCollectionProxy.
Definition at line 80 of file TEmulatedMapProxy.cxx.
|
inlineoverridevirtual |
Streamer I/O overload.
Reimplemented from TEmulatedCollectionProxy.
Definition at line 54 of file TEmulatedMapProxy.h.
|
overridevirtual |
Streamer Function.
Reimplemented from TEmulatedCollectionProxy.
Definition at line 237 of file TEmulatedMapProxy.cxx.
Definition at line 155 of file TEmulatedMapProxy.cxx.