34 return &(itr->second);
40 auto &pages = pageMap->fOnDiskPages;
41 fOnDiskPages.insert(std::make_move_iterator(pages.begin()), std::make_move_iterator(pages.end()));
42 pageMap->fOnDiskPages.clear();
43 fPageMaps.emplace_back(std::move(pageMap));
50 auto &pages = other.fOnDiskPages;
51 fOnDiskPages.insert(std::make_move_iterator(pages.begin()), std::make_move_iterator(pages.end()));
52 other.fOnDiskPages.clear();
54 auto &columns = other.fAvailPhysicalColumns;
55 fAvailPhysicalColumns.insert(std::make_move_iterator(columns.begin()), std::make_move_iterator(columns.end()));
56 other.fAvailPhysicalColumns.clear();
57 std::move(other.fPageMaps.begin(), other.fPageMaps.end(), std::back_inserter(
fPageMaps));
58 other.fPageMaps.clear();
#define R__ASSERT(e)
Checks condition e and reports a fatal error if it's false.
std::vector< std::unique_ptr< ROnDiskPageMap > > fPageMaps
Multiple page maps can be combined in a single RCluster.
ColumnSet_t fAvailPhysicalColumns
Set of the (complete) columns represented by the RCluster.
ROOT::DescriptorId_t fClusterId
References the cluster identifier in the page source that created the cluster.
RCluster(ROOT::DescriptorId_t clusterId)
void SetColumnAvailable(ROOT::DescriptorId_t physicalColumnId)
Marks the column as complete; must be done for all columns, even empty ones without associated pages,...
const ROnDiskPage * GetOnDiskPage(const ROnDiskPage::Key &key) const
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 ...
std::unordered_map< ROnDiskPage::Key, ROnDiskPage > fOnDiskPages
Lookup table for the on-disk pages.
~ROnDiskPageMapHeap() override
virtual ~ROnDiskPageMap()
A page as being stored on disk, that is packed and compressed.
std::uint64_t DescriptorId_t
Distriniguishes elements of the same type within a descriptor, e.g. different fields.
On-disk pages within a page source are identified by the column and page number.