Common functionality of an ntuple storage for both reading and writing.
The RPageStore provides access to a storage container that keeps the bits of pages and clusters comprising an ntuple. Concrete implementations can use a TFile, a raw file, an object store, and so on.
Definition at line 68 of file RPageStorage.hxx.
Classes | |
| struct | RColumnHandle | 
| struct | RSealedPage | 
| A sealed page contains the bytes of a page as written to storage (packed & compressed).  More... | |
| struct | RSealedPageGroup | 
| A range of sealed pages referring to the same column that can be used for vector commit.  More... | |
| class | RTaskScheduler | 
| The interface of a task scheduler to schedule page (de)compression tasks.  More... | |
Public Types | |
| using | ColumnHandle_t = RColumnHandle | 
| The column handle identifies a column with the current open page storage.   | |
| using | SealedPageSequence_t = std::deque< RSealedPage > | 
Public Member Functions | |
| RPageStorage (const RPageStorage &other)=delete | |
| RPageStorage (RPageStorage &&other)=default | |
| RPageStorage (std::string_view name) | |
| virtual | ~RPageStorage () | 
| virtual ColumnHandle_t | AddColumn (DescriptorId_t fieldId, const RColumn &column)=0 | 
| Register a new column.   | |
| virtual void | DropColumn (ColumnHandle_t columnHandle)=0 | 
| Unregisters a column.   | |
| virtual RNTupleMetrics & | GetMetrics ()=0 | 
| Page storage implementations have their own metrics.   | |
| const std::string & | GetNTupleName () const | 
| Returns the NTuple name.   | |
| virtual EPageStorageType | GetType ()=0 | 
| Whether the concrete implementation is a sink or a source.   | |
| RPageStorage & | operator= (const RPageStorage &other)=delete | 
| RPageStorage & | operator= (RPageStorage &&other)=default | 
| virtual void | ReleasePage (RPage &page)=0 | 
| Every page store needs to be able to free pages it handed out.   | |
| void | SetTaskScheduler (RTaskScheduler *taskScheduler) | 
Protected Attributes | |
| std::string | fNTupleName | 
| RTaskScheduler * | fTaskScheduler = nullptr | 
#include <ROOT/RPageStorage.hxx>
The column handle identifies a column with the current open page storage.
Definition at line 136 of file RPageStorage.hxx.
| using ROOT::Experimental::Detail::RPageStorage::SealedPageSequence_t = std::deque<RSealedPage> | 
Definition at line 99 of file RPageStorage.hxx.
      
  | 
  explicit | 
Definition at line 37 of file RPageStorage.cxx.
      
  | 
  delete | 
      
  | 
  default | 
      
  | 
  virtual | 
Definition at line 41 of file RPageStorage.cxx.
      
  | 
  pure virtual | 
Register a new column.
When reading, the column must exist in the ntuple on disk corresponding to the meta-data. When writing, every column can only be attached once.
Implemented in ROOT::Experimental::Detail::RPageSourceFriends, ROOT::Experimental::Detail::RPageSink, and ROOT::Experimental::Detail::RPageSource.
      
  | 
  pure virtual | 
Unregisters a column.
A page source decreases the reference counter for the corresponding active column. For a page sink, dropping columns is currently a no-op.
Implemented in ROOT::Experimental::Detail::RPageSourceFriends, ROOT::Experimental::Detail::RPageSource, and ROOT::Experimental::Detail::RPageSink.
      
  | 
  pure virtual | 
Page storage implementations have their own metrics.
The RPageSink and RPageSource classes provide a default set of metrics.
Implemented in ROOT::Experimental::Detail::RPageSinkBuf, ROOT::Experimental::Detail::RPageSourceFriends, ROOT::Experimental::Detail::RPageSink, and ROOT::Experimental::Detail::RPageSource.
      
  | 
  inline | 
Returns the NTuple name.
Definition at line 153 of file RPageStorage.hxx.
      
  | 
  pure virtual | 
Whether the concrete implementation is a sink or a source.
Implemented in ROOT::Experimental::Detail::RPageSink, and ROOT::Experimental::Detail::RPageSource.
      
  | 
  delete | 
      
  | 
  default | 
      
  | 
  pure virtual | 
Every page store needs to be able to free pages it handed out.
But Sinks and sources have different means of allocating pages.
Implemented in ROOT::Experimental::Detail::RPageSinkBuf, ROOT::Experimental::Detail::RPageSourceFriends, ROOT::Experimental::Detail::RPageSinkDaos, ROOT::Experimental::Detail::RPageSourceDaos, ROOT::Experimental::Detail::RPageSinkFile, and ROOT::Experimental::Detail::RPageSourceFile.
      
  | 
  inline | 
Definition at line 155 of file RPageStorage.hxx.
      
  | 
  protected | 
Definition at line 113 of file RPageStorage.hxx.
      
  | 
  protected | 
Definition at line 114 of file RPageStorage.hxx.