Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
ROOT::Experimental::Detail::RPageSinkBuf::RColumnBuf Class Reference

A buffered column.

The column is not responsible for RPage memory management (i.e. ReservePage/ReleasePage), which is handled by the enclosing RPageSinkBuf.

Definition at line 47 of file RPageSinkBuf.hxx.

Classes

struct  RPageZipItem
 

Public Types

using BufferedPages_t = std::tuple< std::deque< RPageZipItem >, RPageStorage::SealedPageSequence_t >
 

Public Member Functions

 RColumnBuf ()=default
 
 RColumnBuf (const RColumnBuf &)=delete
 
 RColumnBuf (RColumnBuf &&)=default
 
 ~RColumnBuf ()
 
RPageZipItemBufferPage (RPageStorage::ColumnHandle_t columnHandle, const RPage &page)
 Returns a reference to the newly buffered page.
 
BufferedPages_t DrainBufferedPages ()
 When the return value of DrainBufferedPages() is destroyed, all references returned by GetBuffer are invalidated.
 
void DropBufferedPages ()
 
const RPageStorage::ColumnHandle_tGetHandle () const
 
const RPageStorage::SealedPageSequence_tGetSealedPages () const
 
bool HasSealedPagesOnly () const
 
bool IsEmpty () const
 
RColumnBufoperator= (const RColumnBuf &)=delete
 
RColumnBufoperator= (RColumnBuf &&)=default
 
RSealedPageRegisterSealedPage ()
 

Private Attributes

std::deque< RPageZipItemfBufferedPages
 Using a deque guarantees that element iterators are never invalidated by appends to the end of the iterator by BufferPage.
 
RPageStorage::ColumnHandle_t fCol
 
RPageStorage::SealedPageSequence_t fSealedPages
 Pages that have been already sealed by a concurrent task.
 

Member Typedef Documentation

◆ BufferedPages_t

Constructor & Destructor Documentation

◆ RColumnBuf() [1/3]

ROOT::Experimental::Detail::RPageSinkBuf::RColumnBuf::RColumnBuf ( )
default

◆ RColumnBuf() [2/3]

ROOT::Experimental::Detail::RPageSinkBuf::RColumnBuf::RColumnBuf ( const RColumnBuf )
delete

◆ RColumnBuf() [3/3]

ROOT::Experimental::Detail::RPageSinkBuf::RColumnBuf::RColumnBuf ( RColumnBuf &&  )
default

◆ ~RColumnBuf()

ROOT::Experimental::Detail::RPageSinkBuf::RColumnBuf::~RColumnBuf ( )
inline

Definition at line 65 of file RPageSinkBuf.hxx.

Member Function Documentation

◆ BufferPage()

RPageZipItem & ROOT::Experimental::Detail::RPageSinkBuf::RColumnBuf::BufferPage ( RPageStorage::ColumnHandle_t  columnHandle,
const RPage page 
)
inline

Returns a reference to the newly buffered page.

The reference remains valid until the return value of DrainBufferedPages() is destroyed. Note that BufferPage() yields the ownership of page to RColumnBuf.

Definition at line 70 of file RPageSinkBuf.hxx.

◆ DrainBufferedPages()

BufferedPages_t ROOT::Experimental::Detail::RPageSinkBuf::RColumnBuf::DrainBufferedPages ( )
inline

When the return value of DrainBufferedPages() is destroyed, all references returned by GetBuffer are invalidated.

This function gives up on the ownership of the buffered pages. Thus, ReleasePage() must be called accordingly.

Definition at line 91 of file RPageSinkBuf.hxx.

◆ DropBufferedPages()

void ROOT::Experimental::Detail::RPageSinkBuf::RColumnBuf::DropBufferedPages ( )

Definition at line 25 of file RPageSinkBuf.cxx.

◆ GetHandle()

const RPageStorage::ColumnHandle_t & ROOT::Experimental::Detail::RPageSinkBuf::RColumnBuf::GetHandle ( ) const
inline

Definition at line 81 of file RPageSinkBuf.hxx.

◆ GetSealedPages()

const RPageStorage::SealedPageSequence_t & ROOT::Experimental::Detail::RPageSinkBuf::RColumnBuf::GetSealedPages ( ) const
inline

Definition at line 84 of file RPageSinkBuf.hxx.

◆ HasSealedPagesOnly()

bool ROOT::Experimental::Detail::RPageSinkBuf::RColumnBuf::HasSealedPagesOnly ( ) const
inline

Definition at line 83 of file RPageSinkBuf.hxx.

◆ IsEmpty()

bool ROOT::Experimental::Detail::RPageSinkBuf::RColumnBuf::IsEmpty ( ) const
inline

Definition at line 82 of file RPageSinkBuf.hxx.

◆ operator=() [1/2]

RColumnBuf & ROOT::Experimental::Detail::RPageSinkBuf::RColumnBuf::operator= ( const RColumnBuf )
delete

◆ operator=() [2/2]

RColumnBuf & ROOT::Experimental::Detail::RPageSinkBuf::RColumnBuf::operator= ( RColumnBuf &&  )
default

◆ RegisterSealedPage()

RSealedPage & ROOT::Experimental::Detail::RPageSinkBuf::RColumnBuf::RegisterSealedPage ( )
inline

Definition at line 102 of file RPageSinkBuf.hxx.

Member Data Documentation

◆ fBufferedPages

std::deque<RPageZipItem> ROOT::Experimental::Detail::RPageSinkBuf::RColumnBuf::fBufferedPages
private

Using a deque guarantees that element iterators are never invalidated by appends to the end of the iterator by BufferPage.

Definition at line 111 of file RPageSinkBuf.hxx.

◆ fCol

RPageStorage::ColumnHandle_t ROOT::Experimental::Detail::RPageSinkBuf::RColumnBuf::fCol
private

Definition at line 108 of file RPageSinkBuf.hxx.

◆ fSealedPages

RPageStorage::SealedPageSequence_t ROOT::Experimental::Detail::RPageSinkBuf::RColumnBuf::fSealedPages
private

Pages that have been already sealed by a concurrent task.

A vector commit can be issued if all buffered pages have been sealed. Note that each RSealedPage refers to the same buffer as fBufferedPages[i].fBuf for some value of i, and thus owned by RPageZipItem

Definition at line 116 of file RPageSinkBuf.hxx.

Libraries for ROOT::Experimental::Detail::RPageSinkBuf::RColumnBuf:

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