Logo ROOT  
Reference Guide
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Loading...
Searching...
No Matches
ROOT::Experimental::Internal::RNTupleMerger Class Referencefinal

Given a set of RPageSources merge them into an RPagePersistentSink, optionally changing their compression.

This can also be used to change the compression of a single RNTuple by just passing a single source.

Definition at line 90 of file RNTupleMerger.hxx.

Public Member Functions

 RNTupleMerger (std::unique_ptr< RPagePersistentSink > destination)
 Creates a RNTupleMerger with the given destination.
 
RResult< void > Merge (std::span< RPageSource * > sources, const RNTupleMergeOptions &mergeOpts=RNTupleMergeOptions())
 Merge a given set of sources into the destination.
 

Private Member Functions

 RNTupleMerger (std::unique_ptr< RPagePersistentSink > destination, std::unique_ptr< RNTupleModel > model)
 Creates a RNTupleMerger with the given destination.
 
void MergeCommonColumns (RClusterPool &clusterPool, const ROOT::RClusterDescriptor &clusterDesc, std::span< const RColumnMergeInfo > commonColumns, const RCluster::ColumnSet_t &commonColumnSet, std::size_t nCommonColumnsInCluster, RSealedPageMergeData &sealedPageData, const RNTupleMergeData &mergeData)
 
void MergeSourceClusters (RPageSource &source, std::span< const RColumnMergeInfo > commonColumns, std::span< const RColumnMergeInfo > extraDstColumns, RNTupleMergeData &mergeData)
 

Private Attributes

std::unique_ptr< RPagePersistentSinkfDestination
 
std::unique_ptr< RNTupleModelfModel
 
std::unique_ptr< ROOT::Internal::RPageAllocatorfPageAlloc
 
std::optional< TTaskGroupfTaskGroup
 

Friends

class ROOT::RNTuple
 

#include <ROOT/RNTupleMerger.hxx>

Constructor & Destructor Documentation

◆ RNTupleMerger() [1/2]

RNTupleMerger::RNTupleMerger ( std::unique_ptr< RPagePersistentSink > destination,
std::unique_ptr< RNTupleModel > model )
private

Creates a RNTupleMerger with the given destination.

The model must be given if and only if destination has been initialized with that model (i.e. in case of incremental merging).

Definition at line 996 of file RNTupleMerger.cxx.

◆ RNTupleMerger() [2/2]

RNTupleMerger::RNTupleMerger ( std::unique_ptr< RPagePersistentSink > destination)
explicit

Creates a RNTupleMerger with the given destination.

Definition at line 1011 of file RNTupleMerger.cxx.

Member Function Documentation

◆ Merge()

ROOT::RResult< void > RNTupleMerger::Merge ( std::span< RPageSource * > sources,
const RNTupleMergeOptions & mergeOpts = RNTupleMergeOptions() )

Merge a given set of sources into the destination.

Note that sources with an empty schema (i.e. created from a Model that had no fields added to it) are in general valid (depending on the merging mode) but add no entries to the destination.

Definition at line 1016 of file RNTupleMerger.cxx.

◆ MergeCommonColumns()

void RNTupleMerger::MergeCommonColumns ( RClusterPool & clusterPool,
const ROOT::RClusterDescriptor & clusterDesc,
std::span< const RColumnMergeInfo > commonColumns,
const RCluster::ColumnSet_t & commonColumnSet,
std::size_t nCommonColumnsInCluster,
RSealedPageMergeData & sealedPageData,
const RNTupleMergeData & mergeData )
private

Definition at line 682 of file RNTupleMerger.cxx.

◆ MergeSourceClusters()

void RNTupleMerger::MergeSourceClusters ( RPageSource & source,
std::span< const RColumnMergeInfo > commonColumns,
std::span< const RColumnMergeInfo > extraDstColumns,
RNTupleMergeData & mergeData )
private

Definition at line 802 of file RNTupleMerger.cxx.

Friends And Related Symbol Documentation

◆ ROOT::RNTuple

friend class ROOT::RNTuple
friend

Definition at line 91 of file RNTupleMerger.hxx.

Member Data Documentation

◆ fDestination

std::unique_ptr<RPagePersistentSink> ROOT::Experimental::Internal::RNTupleMerger::fDestination
private

Definition at line 93 of file RNTupleMerger.hxx.

◆ fModel

std::unique_ptr<RNTupleModel> ROOT::Experimental::Internal::RNTupleMerger::fModel
private

Definition at line 96 of file RNTupleMerger.hxx.

◆ fPageAlloc

std::unique_ptr<ROOT::Internal::RPageAllocator> ROOT::Experimental::Internal::RNTupleMerger::fPageAlloc
private

Definition at line 94 of file RNTupleMerger.hxx.

◆ fTaskGroup

std::optional<TTaskGroup> ROOT::Experimental::Internal::RNTupleMerger::fTaskGroup
private

Definition at line 95 of file RNTupleMerger.hxx.

Libraries for ROOT::Experimental::Internal::RNTupleMerger:

The documentation for this class was generated from the following files: