A ROOT file.
A ROOT file is an object store: it can serialize any object for which ROOT I/O is available (generally: an object which has a dictionary), and it stores the object's data under a key name.
Classes | |
struct | Options_t |
Options for RFile construction. More... | |
Public Member Functions | |
~RFile () | |
Must not call Write() of all attached objects: some might not be needed to be written or writing might be aborted due to an exception; require explicit Write(). | |
void | Close () |
Flush() and make the file non-writable: close it. | |
void | Flush () |
Save all objects associated with this directory (including file header) to the storage medium. | |
template<class T > | |
std::unique_ptr< T > | Read (std::string_view name) |
Read the object for a key. | |
void | Write (std::string_view name) |
Write an object that is already lifetime managed by this RFileImplBase. | |
template<class T > | |
void | Write (std::string_view name, const T &obj) |
Write an object that is not lifetime managed by this RFileImplBase. | |
template<class T > | |
void | Write (std::string_view name, const T *obj) |
Write an object that is not lifetime managed by this RFileImplBase. | |
template<class T > | |
void | Write (std::string_view name, std::shared_ptr< T > &&obj) |
Hand over lifetime management of an object to this RFileImplBase, and write it. | |
Public Member Functions inherited from ROOT::Experimental::RDirectory | |
template<class T > | |
void | Add (std::string_view name, const std::shared_ptr< T > &ptr) |
Add an existing object (rather a shared_ptr to it) to the RDirectory. | |
template<class T , class... ARGS> | |
std::shared_ptr< ToContentType_t< T > > | Create (std::string_view name, ARGS &&... args) |
Create an object of type T (passing some arguments to its constructor). | |
Internal::RDirectoryEntry | Find (std::string_view name) const |
Find the RDirectoryEntry associated to the name. | |
template<class T > | |
std::pair< Internal::RDirectoryEntry, EFindStatus > | Find (std::string_view name) const |
Find the RDirectoryEntry associated with the name. | |
template<class T > | |
std::shared_ptr< ToContentType_t< T > > | Get (std::string_view name) |
Get the object for a key. | |
bool | Remove (std::string_view name) |
Remove entry from RDirectory (if exists) | |
Static Public Member Functions | |
static std::string | GetCacheDir () |
Get the directory used for cached reads. | |
static std::string | SetCacheDir (std::string_view path) |
Set the new directory used for cached reads, returns the old directory. | |
Generator functions | |
static RFilePtr | Open (std::string_view name, const Options_t &opts=Options_t()) |
Open a file with name for reading. | |
static RFilePtr | OpenForUpdate (std::string_view name, const Options_t &opts=Options_t()) |
Open an existing file with name for reading and writing. | |
static RFilePtr | Create (std::string_view name, const Options_t &opts=Options_t()) |
Open a file with name for reading and writing. | |
static RFilePtr | Recreate (std::string_view name, const Options_t &opts=Options_t()) |
Open a file with name for reading and writing. | |
Static Public Member Functions inherited from ROOT::Experimental::RDirectory | |
static RDirectory & | Heap () |
Dedicated, process-wide RDirectory. | |
Private Member Functions | |
RFile (std::unique_ptr< Internal::RFileStorageInterface > &&storage) | |
void | WriteMemoryWithType (std::string_view name, const void *address, TClass *cl) |
Serialize the object at address, using the object's TClass. | |
Private Attributes | |
std::unique_ptr< Internal::RFileStorageInterface > | fStorage |
Storage backend. | |
Additional Inherited Members | |
Public Types inherited from ROOT::Experimental::RDirectory | |
enum class | EFindStatus { kValidValue , kValidValueBase , kKeyNameNotFound , kTypeMismatch } |
Status of the call to Find<T>(name). More... | |
#include <ROOT/RFile.hxx>
|
private |
|
default |
void ROOT::Experimental::RFile::Close | ( | ) |
|
static |
void ROOT::Experimental::RFile::Flush | ( | ) |
|
static |
|
static |
|
static |
|
inline |
Read the object for a key.
T
must be the object's type. This will re-read the object for each call, returning a new copy; whether the RDirectory
is managing an object attached to this key or not.
unique_ptr
to the object. RDirectoryUnknownKey | if no object is stored under this name. |
RDirectoryTypeMismatch | if the object stored under this name is of a type different from T . |
|
static |
|
static |
|
inline |
|
inline |
|
inline |
|
inline |
|
private |
|
private |