Definition at line 149 of file RMiniFile.hxx.
|
| | RImplSimple () |
| |
| | RImplSimple (const RImplSimple &other)=delete |
| |
| | RImplSimple (RImplSimple &&other)=delete |
| |
| void | AllocateBuffers (std::size_t bufferSize) |
| |
| void | Flush () |
| |
| | operator bool () const |
| |
| RImplSimple & | operator= (const RImplSimple &other)=delete |
| |
| RImplSimple & | operator= (RImplSimple &&other)=delete |
| |
| std::uint64_t | ReserveBlobKey (std::size_t nbytes, std::size_t len, unsigned char keyBuffer[kBlobKeyLen]=nullptr) |
| | Reserves an RBlob opaque key as data record and returns the offset of the record.
|
| |
| void | Write (const void *buffer, size_t nbytes, std::int64_t offset=-1) |
| | Writes bytes in the open stream, either at fFilePos or at the given offset.
|
| |
| std::uint64_t | WriteKey (const void *buffer, std::size_t nbytes, std::size_t len, std::int64_t offset=-1, std::uint64_t directoryOffset=100, const std::string &className="", const std::string &objectName="", const std::string &title="") |
| | Writes a TKey including the data record, given by buffer, into fFile; returns the file offset to the payload.
|
| |
◆ RImplSimple() [1/3]
| ROOT::Internal::RNTupleFileWriter::RImplSimple::RImplSimple |
( |
| ) |
|
|
default |
◆ RImplSimple() [2/3]
| ROOT::Internal::RNTupleFileWriter::RImplSimple::RImplSimple |
( |
const RImplSimple & | other | ) |
|
|
delete |
◆ RImplSimple() [3/3]
| ROOT::Internal::RNTupleFileWriter::RImplSimple::RImplSimple |
( |
RImplSimple && | other | ) |
|
|
delete |
◆ AllocateBuffers()
| void ROOT::Internal::RNTupleFileWriter::RImplSimple::AllocateBuffers |
( |
std::size_t | bufferSize | ) |
|
◆ Flush()
| void ROOT::Internal::RNTupleFileWriter::RImplSimple::Flush |
( |
| ) |
|
◆ operator bool()
| ROOT::Internal::RNTupleFileWriter::RImplSimple::operator bool |
( |
| ) |
const |
|
inline |
◆ operator=() [1/2]
◆ operator=() [2/2]
◆ ReserveBlobKey()
| std::uint64_t ROOT::Internal::RNTupleFileWriter::RImplSimple::ReserveBlobKey |
( |
std::size_t | nbytes, |
|
|
std::size_t | len, |
|
|
unsigned char | keyBuffer[kBlobKeyLen] = nullptr ) |
Reserves an RBlob opaque key as data record and returns the offset of the record.
If keyBuffer is specified, it must be written before the returned offset. (Note that the array type is purely documentation, the argument is actually just a pointer.)
Definition at line 1151 of file RMiniFile.cxx.
◆ Write()
| void ROOT::Internal::RNTupleFileWriter::RImplSimple::Write |
( |
const void * | buffer, |
|
|
size_t | nbytes, |
|
|
std::int64_t | offset = -1 ) |
Writes bytes in the open stream, either at fFilePos or at the given offset.
Definition at line 1073 of file RMiniFile.cxx.
◆ WriteKey()
| std::uint64_t ROOT::Internal::RNTupleFileWriter::RImplSimple::WriteKey |
( |
const void * | buffer, |
|
|
std::size_t | nbytes, |
|
|
std::size_t | len, |
|
|
std::int64_t | offset = -1, |
|
|
std::uint64_t | directoryOffset = 100, |
|
|
const std::string & | className = "", |
|
|
const std::string & | objectName = "", |
|
|
const std::string & | title = "" ) |
Writes a TKey including the data record, given by buffer, into fFile; returns the file offset to the payload.
The payload is already compressed
Definition at line 1124 of file RMiniFile.cxx.
◆ fShared
| std::shared_ptr<RSharedData> ROOT::Internal::RNTupleFileWriter::RImplSimple::fShared |
◆ kBlockAlign
| constexpr int ROOT::Internal::RNTupleFileWriter::RImplSimple::kBlockAlign = 4096 |
|
staticconstexpr |
Direct I/O requires that all buffers and write lengths are aligned.
It seems 512 byte alignment is the minimum for Direct I/O to work, but further testing showed that it results in worse performance than 4kB.
Definition at line 152 of file RMiniFile.hxx.
◆ kHeaderBlockSize
| constexpr std::size_t ROOT::Internal::RNTupleFileWriter::RImplSimple::kHeaderBlockSize = 4096 |
|
staticconstexpr |
During commit, WriteTFileKeysList() updates fNBytesKeys and fSeekKeys of the RTFFile located at fSeekFileRecord.
Given that the TFile key starts at offset 100 and the file name, which is written twice, is shorter than 255 characters, we should need at most ~600 bytes. However, the header also needs to be aligned to kBlockAlign...
Definition at line 157 of file RMiniFile.hxx.
The documentation for this struct was generated from the following files: