23#include <unordered_map> 
   24#include <unordered_set> 
   29namespace Experimental {
 
   79   struct hash<
ROOT::Experimental::Detail::ROnDiskPage::Key>
 
   84         return ((std::hash<ROOT::Experimental::DescriptorId_t>()(key.
fColumnId) ^
 
   85                 (hash<ROOT::Experimental::NTupleSize_t>()(key.
fPageNo) << 1)) >> 1);
 
   92namespace Experimental {
 
  186   void Adopt(std::unique_ptr<ROnDiskPageMap> pageMap);
 
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
 
TRObject operator()(const T1 &t1) const
 
An in-memory subset of the packed and compressed pages of a cluster.
 
RCluster(const RCluster &other)=delete
 
RCluster & operator=(const RCluster &other)=delete
 
bool ContainsColumn(DescriptorId_t columnId) const
 
const ColumnSet_t & GetAvailColumns() const
 
size_t GetNOnDiskPages() const
 
std::unordered_set< DescriptorId_t > ColumnSet_t
 
RCluster(RCluster &&other)=default
 
DescriptorId_t fClusterId
References the cluster identifier in the page source that created the cluster.
 
void Adopt(std::unique_ptr< ROnDiskPageMap > pageMap)
Move the given page map into this cluster; for on-disk pages that are present in both the cluster at ...
 
RCluster(DescriptorId_t clusterId)
 
void SetColumnAvailable(DescriptorId_t columnId)
Marks the column as complete; must be done for all columns, even empty ones without associated pages,...
 
std::vector< std::unique_ptr< ROnDiskPageMap > > fPageMaps
Multiple page maps can be combined in a single RCluster.
 
std::unordered_map< ROnDiskPage::Key, ROnDiskPage > fOnDiskPages
Lookup table for the on-disk pages.
 
DescriptorId_t GetId() const
 
ColumnSet_t fAvailColumns
Set of the (complete) columns represented by the RCluster.
 
const ROnDiskPage * GetOnDiskPage(const ROnDiskPage::Key &key) const
 
An ROnDiskPageMap that is used for an fMemory allocated as an array of unsigned char.
 
std::unique_ptr< unsigned char[]> fMemory
The memory region containing the on-disk pages.
 
~ROnDiskPageMapHeap() override
 
ROnDiskPageMapHeap(std::unique_ptr< unsigned char[]> memory)
 
ROnDiskPageMapHeap & operator=(const ROnDiskPageMapHeap &other)=delete
 
ROnDiskPageMapHeap(const ROnDiskPageMapHeap &other)=delete
 
ROnDiskPageMapHeap(ROnDiskPageMapHeap &&other)=default
 
A memory region that contains packed and compressed pages.
 
std::unordered_map< ROnDiskPage::Key, ROnDiskPage > fOnDiskPages
 
void Register(const ROnDiskPage::Key &key, const ROnDiskPage &onDiskPage)
Inserts information about a page stored in fMemory.
 
virtual ~ROnDiskPageMap()
 
ROnDiskPageMap(const ROnDiskPageMap &other)=delete
 
ROnDiskPageMap(ROnDiskPageMap &&other)=default
 
ROnDiskPageMap & operator=(const ROnDiskPageMap &other)=delete
 
A page as being stored on disk, that is packed and compressed.
 
ROnDiskPage(void *address, std::uint32_t size)
 
std::uint32_t fSize
The compressed and packed size of the page.
 
const void * fAddress
The memory location of the bytes.
 
const void * GetAddress() const
 
std::uint32_t GetSize() const
 
std::uint64_t DescriptorId_t
Distriniguishes elements of the same type within a descriptor, e.g. different fields.
 
constexpr DescriptorId_t kInvalidDescriptorId
 
This file contains a specialised ROOT message handler to test for diagnostic in unit tests.
 
The identifiers that specifies the content of a (partial) cluster.
 
DescriptorId_t fClusterId
 
On-disk pages within a page source are identified by the column and page number.
 
friend bool operator==(const Key &lhs, const Key &rhs)
 
Key(DescriptorId_t columnId, std::uint64_t pageNo)