Logo ROOT  
Reference Guide
Loading...
Searching...
No Matches
ROOT::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 54 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::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 110 of file RFieldProxiedCollection.hxx.

◆ ~RCollectionIterableOnce()

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

Definition at line 116 of file RFieldProxiedCollection.hxx.

Member Function Documentation

◆ begin()

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

Definition at line 118 of file RFieldProxiedCollection.hxx.

◆ end()

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

Definition at line 119 of file RFieldProxiedCollection.hxx.

◆ GetIteratorFuncs()

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

Definition at line 1010 of file RFieldMeta.cxx.

Member Data Documentation

◆ fBegin

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

Definition at line 103 of file RFieldProxiedCollection.hxx.

◆ fBeginSmallBuf

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

Definition at line 101 of file RFieldProxiedCollection.hxx.

◆ fEnd

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

Definition at line 104 of file RFieldProxiedCollection.hxx.

◆ fEndSmallBuf

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

Definition at line 102 of file RFieldProxiedCollection.hxx.

◆ fIFuncs

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

Definition at line 99 of file RFieldProxiedCollection.hxx.

◆ fStride

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

Definition at line 100 of file RFieldProxiedCollection.hxx.


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