Logo ROOT  
Reference Guide
 
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 99 of file RNTupleMerger.hxx.

Public Member Functions

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

Private Member Functions

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

Private Attributes

std::unique_ptr< ROOT::Internal::RPagePersistentSinkfDestination
 
std::unique_ptr< ROOT::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< ROOT::Internal::RPagePersistentSink > destination,
std::unique_ptr< ROOT::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 1092 of file RNTupleMerger.cxx.

◆ RNTupleMerger() [2/2]

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

Creates a RNTupleMerger with the given destination.

Definition at line 1108 of file RNTupleMerger.cxx.

Member Function Documentation

◆ Merge()

ROOT::RResult< void > RNTupleMerger::Merge ( std::span< ROOT::Internal::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 1113 of file RNTupleMerger.cxx.

◆ MergeCommonColumns()

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

Definition at line 743 of file RNTupleMerger.cxx.

◆ MergeSourceClusters()

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

Definition at line 869 of file RNTupleMerger.cxx.

Friends And Related Symbol Documentation

◆ ROOT::RNTuple

friend class ROOT::RNTuple
friend

Definition at line 100 of file RNTupleMerger.hxx.

Member Data Documentation

◆ fDestination

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

Definition at line 102 of file RNTupleMerger.hxx.

◆ fModel

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

Definition at line 105 of file RNTupleMerger.hxx.

◆ fPageAlloc

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

Definition at line 103 of file RNTupleMerger.hxx.

◆ fTaskGroup

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

Definition at line 104 of file RNTupleMerger.hxx.

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

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