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 () | |
RPageZipItem & | BufferPage (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_t & | GetHandle () const |
const RPageStorage::SealedPageSequence_t & | GetSealedPages () const |
bool | HasSealedPagesOnly () const |
bool | IsEmpty () const |
RColumnBuf & | operator= (const RColumnBuf &)=delete |
RColumnBuf & | operator= (RColumnBuf &&)=default |
RSealedPage & | RegisterSealedPage () |
Private Attributes | |
std::deque< RPageZipItem > | fBufferedPages |
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. | |
using ROOT::Experimental::Detail::RPageSinkBuf::RColumnBuf::BufferedPages_t = std::tuple<std::deque<RPageZipItem>, RPageStorage::SealedPageSequence_t> |
Definition at line 86 of file RPageSinkBuf.hxx.
|
default |
|
delete |
|
default |
|
inline |
Definition at line 65 of file RPageSinkBuf.hxx.
|
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.
|
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.
void ROOT::Experimental::Detail::RPageSinkBuf::RColumnBuf::DropBufferedPages | ( | ) |
Definition at line 25 of file RPageSinkBuf.cxx.
|
inline |
Definition at line 81 of file RPageSinkBuf.hxx.
|
inline |
Definition at line 84 of file RPageSinkBuf.hxx.
|
inline |
Definition at line 83 of file RPageSinkBuf.hxx.
|
inline |
Definition at line 82 of file RPageSinkBuf.hxx.
|
delete |
|
default |
|
inline |
Definition at line 102 of file RPageSinkBuf.hxx.
|
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.
|
private |
Definition at line 108 of file RPageSinkBuf.hxx.
|
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.