16#ifndef ROOT7_RNTupleParallelWriter
17#define ROOT7_RNTupleParallelWriter
30namespace Experimental {
36class RNTupleFillContext;
65 std::unique_ptr<Internal::RPageSink>
fSink;
67 std::unique_ptr<RNTupleModel>
fModel;
72 RNTupleParallelWriter(std::unique_ptr<RNTupleModel> model, std::unique_ptr<Internal::RPageSink> sink);
78 static std::unique_ptr<RNTupleParallelWriter>
Recreate(std::unique_ptr<RNTupleModel> model,
79 std::string_view ntupleName, std::string_view storage,
82 static std::unique_ptr<RNTupleParallelWriter>
Append(std::unique_ptr<RNTupleModel> model,
83 std::string_view ntupleName,
TFile &file,
A collection of Counter objects with a name, a unit, and a description.
A writer to fill an RNTuple from multiple contexts.
std::vector< std::weak_ptr< RNTupleFillContext > > fFillContexts
List of all created helpers. They must be destroyed before this RNTupleParallelWriter is destructed.
RNTupleParallelWriter(const RNTupleParallelWriter &)=delete
std::unique_ptr< RNTupleModel > fModel
The original RNTupleModel connected to fSink; needs to be destructed before it.
std::unique_ptr< Internal::RPageSink > fSink
The final RPageSink that represents the synchronization point.
static std::unique_ptr< RNTupleParallelWriter > Recreate(std::unique_ptr< RNTupleModel > model, std::string_view ntupleName, std::string_view storage, const RNTupleWriteOptions &options=RNTupleWriteOptions())
Recreate a new file and return a writer to write an ntuple.
std::mutex fSinkMutex
A mutex to synchronize the final page sink.
std::shared_ptr< RNTupleFillContext > CreateFillContext()
Create a new RNTupleFillContext that can be used to fill entries and prepare clusters in parallel.
RNTupleParallelWriter & operator=(const RNTupleParallelWriter &)=delete
std::mutex fMutex
A global mutex to protect the internal data structures of this object.
static std::unique_ptr< RNTupleParallelWriter > Append(std::unique_ptr< RNTupleModel > model, std::string_view ntupleName, TFile &file, const RNTupleWriteOptions &options=RNTupleWriteOptions())
Append an ntuple to the existing file, which must not be accessed while data is filled into any creat...
Detail::RNTupleMetrics fMetrics
const Detail::RNTupleMetrics & GetMetrics() const
Common user-tunable settings for storing ntuples.
A ROOT file is an on-disk file, usually with extension .root, that stores objects in a file-system-li...
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...