Write RNTuple data blocks in a TFile or a bare file container.
The writer can create a new TFile container for an RNTuple or add an RNTuple to an existing TFile. Creating a single RNTuple in a new TFile container can be done with a C file stream without a TFile class. Updating an existing TFile requires a proper TFile object. Also, writing a remote file requires a proper TFile object. A stand-alone version of RNTuple can remove the TFile based writer.
Definition at line 135 of file RMiniFile.hxx.
Classes | |
| struct | RFileProper |
| struct | RFileSimple |
Public Member Functions | |
| RNTupleFileWriter (const RNTupleFileWriter &other)=delete | |
| RNTupleFileWriter (RNTupleFileWriter &&other)=delete | |
| ~RNTupleFileWriter () | |
| void | Commit () |
| Writes the RNTuple key to the file so that the header and footer keys can be found. More... | |
| RNTupleFileWriter & | operator= (const RNTupleFileWriter &other)=delete |
| RNTupleFileWriter & | operator= (RNTupleFileWriter &&other)=delete |
| std::uint64_t | WriteBlob (const void *data, size_t nbytes, size_t len) |
| Writes a new record as an RBlob key into the file. More... | |
| std::uint64_t | WriteNTupleFooter (const void *data, size_t nbytes, size_t lenFooter) |
| Writes the compressed footer and registeres its location; lenFooter is the size of the uncompressed footer. More... | |
| std::uint64_t | WriteNTupleHeader (const void *data, size_t nbytes, size_t lenHeader) |
| Writes the compressed header and registeres its location; lenHeader is the size of the uncompressed header. More... | |
Static Public Member Functions | |
| static RNTupleFileWriter * | Append (std::string_view ntupleName, TFile &file) |
| Add a new RNTuple identified by ntupleName to the existing TFile. More... | |
| static RNTupleFileWriter * | Recreate (std::string_view ntupleName, std::string_view path, int defaultCompression, ENTupleContainerFormat containerFormat) |
| Create or truncate the local file given by path with the new empty RNTuple identified by ntupleName. More... | |
| static RNTupleFileWriter * | Recreate (std::string_view ntupleName, std::string_view path, std::unique_ptr< TFile > &file) |
| Create or truncate the local or remote file given by path with the new empty RNTuple identified by ntupleName. More... | |
Private Member Functions | |
| RNTupleFileWriter (std::string_view name) | |
| void | WriteBareFileSkeleton (int defaultCompression) |
| For a bare file, which is necessarily written by a C file stream, write file header. More... | |
| void | WriteTFileSkeleton (int defaultCompression) |
| For a TFile container written by a C file stream, write the records that constitute an empty file. More... | |
Private Attributes | |
| std::string | fFileName |
| The file name without parent directory; only required when writing with a C file stream. More... | |
| RFileProper | fFileProper |
| For updating existing files and for storing more than just an RNTuple in the file. More... | |
| RFileSimple | fFileSimple |
| For simple use cases, survives without libRIO dependency. More... | |
| bool | fIsBare = false |
| A simple file can either be written as TFile container or as NTuple bare file. More... | |
| RNTuple | fNTupleAnchor |
| Header and footer location of the ntuple, written on Commit() More... | |
| std::string | fNTupleName |
| The identifier of the RNTuple; A single writer object can only write a single RNTuple but multiple writers can operate on the same file if (and only if) they use a proper TFile object for writing. More... | |
#include <ROOT/RMiniFile.hxx>
|
explicitprivate |
Definition at line 1082 of file RMiniFile.cxx.
|
delete |
|
delete |
| ROOT::Experimental::Internal::RNTupleFileWriter::~RNTupleFileWriter | ( | ) |
Definition at line 1089 of file RMiniFile.cxx.
|
static |
Add a new RNTuple identified by ntupleName to the existing TFile.
Definition at line 1137 of file RMiniFile.cxx.
| void ROOT::Experimental::Internal::RNTupleFileWriter::Commit | ( | ) |
Writes the RNTuple key to the file so that the header and footer keys can be found.
Definition at line 1146 of file RMiniFile.cxx.
|
delete |
|
delete |
|
static |
Create or truncate the local file given by path with the new empty RNTuple identified by ntupleName.
Uses a C stream for writing
Definition at line 1094 of file RMiniFile.cxx.
|
static |
Create or truncate the local or remote file given by path with the new empty RNTuple identified by ntupleName.
Creates a new TFile object for writing and hands over ownership of the object to the user.
Definition at line 1125 of file RMiniFile.cxx.
|
private |
For a bare file, which is necessarily written by a C file stream, write file header.
Definition at line 1227 of file RMiniFile.cxx.
| std::uint64_t ROOT::Experimental::Internal::RNTupleFileWriter::WriteBlob | ( | const void * | data, |
| size_t | nbytes, | ||
| size_t | len | ||
| ) |
Writes a new record as an RBlob key into the file.
Definition at line 1188 of file RMiniFile.cxx.
| std::uint64_t ROOT::Experimental::Internal::RNTupleFileWriter::WriteNTupleFooter | ( | const void * | data, |
| size_t | nbytes, | ||
| size_t | lenFooter | ||
| ) |
Writes the compressed footer and registeres its location; lenFooter is the size of the uncompressed footer.
Definition at line 1216 of file RMiniFile.cxx.
| std::uint64_t ROOT::Experimental::Internal::RNTupleFileWriter::WriteNTupleHeader | ( | const void * | data, |
| size_t | nbytes, | ||
| size_t | lenHeader | ||
| ) |
Writes the compressed header and registeres its location; lenHeader is the size of the uncompressed header.
Definition at line 1205 of file RMiniFile.cxx.
|
private |
For a TFile container written by a C file stream, write the records that constitute an empty file.
Definition at line 1242 of file RMiniFile.cxx.
|
private |
The file name without parent directory; only required when writing with a C file stream.
Definition at line 184 of file RMiniFile.hxx.
|
private |
For updating existing files and for storing more than just an RNTuple in the file.
Definition at line 175 of file RMiniFile.hxx.
|
private |
For simple use cases, survives without libRIO dependency.
Definition at line 177 of file RMiniFile.hxx.
|
private |
A simple file can either be written as TFile container or as NTuple bare file.
Definition at line 179 of file RMiniFile.hxx.
|
private |
Header and footer location of the ntuple, written on Commit()
Definition at line 186 of file RMiniFile.hxx.
|
private |
The identifier of the RNTuple; A single writer object can only write a single RNTuple but multiple writers can operate on the same file if (and only if) they use a proper TFile object for writing.
Definition at line 182 of file RMiniFile.hxx.