An RNTuple that gets filled with entries (data) and writes them to storage.
An output ntuple can be filled with entries. The caller has to make sure that the data that gets filled into an ntuple is not modified for the time of the Fill() call. The fill call serializes the C++ object into the column format and writes data into the corresponding column page buffers. Writing of the buffers to storage is deferred and can be triggered by Flush() or by destructing the ntuple. On I/O errors, an exception is thrown.
Definition at line 351 of file RNTuple.hxx.
Public Member Functions | |
RNTupleWriter (const RNTupleWriter &)=delete | |
RNTupleWriter (std::unique_ptr< RNTupleModel > model, std::unique_ptr< Detail::RPageSink > sink) | |
Throws an exception if the model or the sink is null. | |
~RNTupleWriter () | |
void | CommitCluster () |
Ensure that the data from the so far seen Fill calls has been written to storage. | |
std::unique_ptr< REntry > | CreateEntry () |
void | EnableMetrics () |
void | Fill () |
The simplest user interface if the default entry that comes with the ntuple model is used. | |
void | Fill (REntry &entry) |
Multiple entries can have been instantiated from the tnuple model. | |
const Detail::RNTupleMetrics & | GetMetrics () const |
RNTupleWriter & | operator= (const RNTupleWriter &)=delete |
Static Public Member Functions | |
static std::unique_ptr< RNTupleWriter > | Append (std::unique_ptr< RNTupleModel > model, std::string_view ntupleName, TFile &file, const RNTupleWriteOptions &options=RNTupleWriteOptions()) |
Throws an exception if the model is null. | |
static std::unique_ptr< RNTupleWriter > | Recreate (std::unique_ptr< RNTupleModel > model, std::string_view ntupleName, std::string_view storage, const RNTupleWriteOptions &options=RNTupleWriteOptions()) |
Throws an exception if the model is null. | |
Private Attributes | |
NTupleSize_t | fLastCommitted = 0 |
std::size_t | fMaxUnzippedClusterSize |
Limit for committing cluster no matter the other tunables. | |
Detail::RNTupleMetrics | fMetrics |
std::unique_ptr< RNTupleModel > | fModel |
Needs to be destructed before fSink. | |
std::uint64_t | fNBytesCommitted = 0 |
The total number of bytes written to storage (i.e., after compression) | |
std::uint64_t | fNBytesFilled = 0 |
The total number of bytes filled into all the so far committed clusters, i.e. | |
NTupleSize_t | fNEntries = 0 |
std::unique_ptr< Detail::RPageSink > | fSink |
std::size_t | fUnzippedClusterSize = 0 |
Keeps track of the number of bytes written into the current cluster. | |
NTupleSize_t | fUnzippedClusterSizeEst |
Estimator of uncompressed cluster size, taking into account the estimated compression ratio. | |
std::unique_ptr< Detail::RPageStorage::RTaskScheduler > | fZipTasks |
The page sink's parallel page compression scheduler if IMT is on. | |
#include <ROOT/RNTuple.hxx>
ROOT::Experimental::RNTupleWriter::RNTupleWriter | ( | std::unique_ptr< RNTupleModel > | model, |
std::unique_ptr< Detail::RPageSink > | sink | ||
) |
Throws an exception if the model or the sink is null.
Definition at line 274 of file RNTuple.cxx.
|
delete |
ROOT::Experimental::RNTupleWriter::~RNTupleWriter | ( | ) |
Definition at line 303 of file RNTuple.cxx.
|
static |
Throws an exception if the model is null.
Definition at line 318 of file RNTuple.cxx.
void ROOT::Experimental::RNTupleWriter::CommitCluster | ( | ) |
Ensure that the data from the so far seen Fill calls has been written to storage.
Definition at line 333 of file RNTuple.cxx.
|
inline |
Definition at line 406 of file RNTuple.hxx.
|
inline |
Definition at line 408 of file RNTuple.hxx.
|
inline |
The simplest user interface if the default entry that comes with the ntuple model is used.
Definition at line 392 of file RNTuple.hxx.
Multiple entries can have been instantiated from the tnuple model.
This method will perform a light check whether the entry comes from the ntuple's own model
Definition at line 395 of file RNTuple.hxx.
|
inline |
Definition at line 409 of file RNTuple.hxx.
|
delete |
|
static |
Throws an exception if the model is null.
Definition at line 309 of file RNTuple.cxx.
|
private |
Definition at line 360 of file RNTuple.hxx.
|
private |
Limit for committing cluster no matter the other tunables.
Definition at line 370 of file RNTuple.hxx.
|
private |
Definition at line 359 of file RNTuple.hxx.
|
private |
Needs to be destructed before fSink.
Definition at line 358 of file RNTuple.hxx.
|
private |
The total number of bytes written to storage (i.e., after compression)
Definition at line 365 of file RNTuple.hxx.
|
private |
The total number of bytes filled into all the so far committed clusters, i.e.
the uncompressed size of the written clusters
Definition at line 368 of file RNTuple.hxx.
|
private |
Definition at line 361 of file RNTuple.hxx.
|
private |
Definition at line 356 of file RNTuple.hxx.
|
private |
Keeps track of the number of bytes written into the current cluster.
Definition at line 363 of file RNTuple.hxx.
|
private |
Estimator of uncompressed cluster size, taking into account the estimated compression ratio.
Definition at line 372 of file RNTuple.hxx.
|
private |
The page sink's parallel page compression scheduler if IMT is on.
Needs to be destructed after the page sink is destructed and so declared before.
Definition at line 355 of file RNTuple.hxx.