Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
ROOT::Experimental::RProxiedCollectionField::RCollectionIterableOnce Class Reference

Allows for iterating over the elements of a proxied collection.

RCollectionIterableOnce avoids an additional iterator copy (see TVirtualCollectionProxy::GetFunctionCopyIterator) and thus can only be iterated once.

Definition at line 58 of file RFieldProxiedCollection.hxx.

Classes

class  RIterator
 
struct  RIteratorFuncs
 

Public Member Functions

 RCollectionIterableOnce (void *collection, const RIteratorFuncs &ifuncs, TVirtualCollectionProxy *proxy, std::size_t stride=0U)
 Construct a RCollectionIterableOnce that iterates over collection.
 
 ~RCollectionIterableOnce ()
 
RIterator begin ()
 
RIterator end ()
 

Static Public Member Functions

static RIteratorFuncs GetIteratorFuncs (TVirtualCollectionProxy *proxy, bool readFromDisk)
 

Private Attributes

void * fBegin = &fBeginSmallBuf
 
unsigned char fBeginSmallBuf [TVirtualCollectionProxy::fgIteratorArenaSize]
 
void * fEnd = &fEndSmallBuf
 
unsigned char fEndSmallBuf [TVirtualCollectionProxy::fgIteratorArenaSize]
 
const RIteratorFuncsfIFuncs
 
const std::size_t fStride
 

#include <ROOT/RField/RFieldProxiedCollection.hxx>

Constructor & Destructor Documentation

◆ RCollectionIterableOnce()

ROOT::Experimental::RProxiedCollectionField::RCollectionIterableOnce::RCollectionIterableOnce ( void *  collection,
const RIteratorFuncs ifuncs,
TVirtualCollectionProxy proxy,
std::size_t  stride = 0U 
)
inline

Construct a RCollectionIterableOnce that iterates over collection.

If elements are guaranteed to be contiguous in memory (e.g. a vector), stride can be provided for faster iteration, i.e. the address of each element is known given the base pointer.

Definition at line 114 of file RFieldProxiedCollection.hxx.

◆ ~RCollectionIterableOnce()

ROOT::Experimental::RProxiedCollectionField::RCollectionIterableOnce::~RCollectionIterableOnce ( )
inline

Definition at line 120 of file RFieldProxiedCollection.hxx.

Member Function Documentation

◆ begin()

RIterator ROOT::Experimental::RProxiedCollectionField::RCollectionIterableOnce::begin ( )
inline

Definition at line 122 of file RFieldProxiedCollection.hxx.

◆ end()

RIterator ROOT::Experimental::RProxiedCollectionField::RCollectionIterableOnce::end ( )
inline

Definition at line 123 of file RFieldProxiedCollection.hxx.

◆ GetIteratorFuncs()

ROOT::Experimental::RProxiedCollectionField::RCollectionIterableOnce::RIteratorFuncs ROOT::Experimental::RProxiedCollectionField::RCollectionIterableOnce::GetIteratorFuncs ( TVirtualCollectionProxy proxy,
bool  readFromDisk 
)
static

Definition at line 410 of file RFieldMeta.cxx.

Member Data Documentation

◆ fBegin

void* ROOT::Experimental::RProxiedCollectionField::RCollectionIterableOnce::fBegin = &fBeginSmallBuf
private

Definition at line 107 of file RFieldProxiedCollection.hxx.

◆ fBeginSmallBuf

unsigned char ROOT::Experimental::RProxiedCollectionField::RCollectionIterableOnce::fBeginSmallBuf[TVirtualCollectionProxy::fgIteratorArenaSize]
private

Definition at line 105 of file RFieldProxiedCollection.hxx.

◆ fEnd

void* ROOT::Experimental::RProxiedCollectionField::RCollectionIterableOnce::fEnd = &fEndSmallBuf
private

Definition at line 108 of file RFieldProxiedCollection.hxx.

◆ fEndSmallBuf

unsigned char ROOT::Experimental::RProxiedCollectionField::RCollectionIterableOnce::fEndSmallBuf[TVirtualCollectionProxy::fgIteratorArenaSize]
private

Definition at line 106 of file RFieldProxiedCollection.hxx.

◆ fIFuncs

const RIteratorFuncs& ROOT::Experimental::RProxiedCollectionField::RCollectionIterableOnce::fIFuncs
private

Definition at line 103 of file RFieldProxiedCollection.hxx.

◆ fStride

const std::size_t ROOT::Experimental::RProxiedCollectionField::RCollectionIterableOnce::fStride
private

Definition at line 104 of file RFieldProxiedCollection.hxx.

Libraries for ROOT::Experimental::RProxiedCollectionField::RCollectionIterableOnce:

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