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) |
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::Internal::RPageSinkBuf::RColumnBuf::BufferedPages_t = std::tuple<std::deque<RPageZipItem>, RPageStorage::SealedPageSequence_t> |
Definition at line 84 of file RPageSinkBuf.hxx.
|
default |
|
delete |
|
default |
|
inline |
Definition at line 66 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.
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 89 of file RPageSinkBuf.hxx.
void ROOT::Experimental::Internal::RPageSinkBuf::RColumnBuf::DropBufferedPages | ( | ) |
Definition at line 26 of file RPageSinkBuf.cxx.
|
inline |
Definition at line 79 of file RPageSinkBuf.hxx.
|
inline |
Definition at line 82 of file RPageSinkBuf.hxx.
|
inline |
Definition at line 81 of file RPageSinkBuf.hxx.
|
inline |
Definition at line 80 of file RPageSinkBuf.hxx.
|
delete |
|
default |
|
inline |
Definition at line 100 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 109 of file RPageSinkBuf.hxx.
|
private |
Definition at line 106 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 114 of file RPageSinkBuf.hxx.