Logo ROOT   6.12/07
Reference Guide
List of all members | Classes | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
ROOT::Experimental::TFile Class Reference

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.

Definition at line 45 of file TFile.hxx.

Classes

struct  Options_t
 Options for TFile construction. More...
 

Public Member Functions

 ~TFile ()
 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(). More...
 
void Close ()
 Flush() and make the file non-writable: close it. More...
 
void Flush ()
 Save all objects associated with this directory (including file header) to the storage medium. More...
 
template<class T >
std::unique_ptr< T > Read (std::string_view name)
 Read the object for a key. More...
 
template<class T >
void Write (std::string_view name, const T &obj)
 Write an object that is not lifetime managed by this TFileImplBase. More...
 
template<class T >
void Write (std::string_view name, const T *obj)
 Write an object that is not lifetime managed by this TFileImplBase. More...
 
void Write (std::string_view name)
 Write an object that is already lifetime managed by this TFileImplBase. More...
 
template<class T >
void Write (std::string_view name, std::shared_ptr< T > &&obj)
 Hand over lifetime management of an object to this TFileImplBase, and write it. More...
 
- Public Member Functions inherited from ROOT::Experimental::TDirectory
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 TDirectory. More...
 
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). More...
 
Internal::TDirectoryEntry Find (std::string_view name) const
 Find the TDirectoryEntry associated to the name. More...
 
template<class T >
std::pair< Internal::TDirectoryEntry, EFindStatusFind (std::string_view name) const
 Find the TDirectoryEntry associated with the name. More...
 
template<class T >
std::shared_ptr< ToContentType_t< T > > Get (std::string_view name)
 Get the object for a key. More...
 

Static Public Member Functions

static std::string GetCacheDir ()
 Get the directory used for cached reads. More...
 
static std::string SetCacheDir (std::string_view path)
 Set the new directory used for cached reads, returns the old directory. More...
 
Generator functions
static TFilePtr Open (std::string_view name, const Options_t &opts=Options_t())
 Open a file with name for reading. More...
 
static TFilePtr OpenForUpdate (std::string_view name, const Options_t &opts=Options_t())
 Open an existing file with name for reading and writing. More...
 
static TFilePtr Create (std::string_view name, const Options_t &opts=Options_t())
 Open a file with name for reading and writing. More...
 
static TFilePtr Recreate (std::string_view name, const Options_t &opts=Options_t())
 Open a file with name for reading and writing. More...
 
- Static Public Member Functions inherited from ROOT::Experimental::TDirectory
static TDirectoryHeap ()
 Dedicated, process-wide TDirectory. More...
 

Private Member Functions

 TFile (std::unique_ptr< Internal::TFileStorageInterface > &&storage)
 
void WriteMemoryWithType (std::string_view name, const void *address, TClass *cl)
 Serialize the object at address, using the object's TClass. More...
 

Private Attributes

std::unique_ptr< Internal::TFileStorageInterface > fStorage
 Storage backend. More...
 

Additional Inherited Members

- Public Types inherited from ROOT::Experimental::TDirectory
enum  EFindStatus { EFindStatus::kValidValue, EFindStatus::kValidValueBase, EFindStatus::kKeyNameNotFound, EFindStatus::kTypeMismatch }
 Status of the call to Find<T>(name). More...
 

#include <ROOT/TFile.hxx>

Inheritance diagram for ROOT::Experimental::TFile:
[legend]

Constructor & Destructor Documentation

◆ TFile()

TFile::TFile ( std::unique_ptr< Internal::TFileStorageInterface > &&  storage)
private

Definition at line 206 of file TFile.cxx.

◆ ~TFile()

TFile::~TFile ( )
default

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().

Member Function Documentation

◆ Close()

void TFile::Close ( )

Flush() and make the file non-writable: close it.

Definition at line 218 of file TFile.cxx.

◆ Create()

ROOT::Experimental::TFilePtr TFile::Create ( std::string_view  name,
const Options_t opts = Options_t() 
)
static

Open a file with name for reading and writing.

Fail (return an invalid TFilePtr) if a file with this name already exists.

Note
: Synchronizes multi-threaded accesses through locks.

Definition at line 162 of file TFile.cxx.

◆ Flush()

void TFile::Flush ( )

Save all objects associated with this directory (including file header) to the storage medium.

Definition at line 214 of file TFile.cxx.

◆ GetCacheDir()

std::string TFile::GetCacheDir ( )
static

Get the directory used for cached reads.

Definition at line 198 of file TFile.cxx.

◆ Open()

ROOT::Experimental::TFilePtr TFile::Open ( std::string_view  name,
const Options_t opts = Options_t() 
)
static

Open a file with name for reading.

Note
: Synchronizes multi-threaded accesses through locks.

Definition at line 153 of file TFile.cxx.

◆ OpenForUpdate()

ROOT::Experimental::TFilePtr TFile::OpenForUpdate ( std::string_view  name,
const Options_t opts = Options_t() 
)
static

Open an existing file with name for reading and writing.

If a file with that name does not exist, an invalid TFilePtr will be returned.

Note
: Synchronizes multi-threaded accesses through locks.

Definition at line 180 of file TFile.cxx.

◆ Read()

template<class T >
std::unique_ptr<T> ROOT::Experimental::TFile::Read ( std::string_view  name)
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 TDirectory is managing an object attached to this key or not.

Returns
a unique_ptr to the object.
Exceptions
TDirectoryUnknownKeyif no object is stored under this name.
TDirectoryTypeMismatchif the object stored under this name is of a type different from T.

Definition at line 134 of file TFile.hxx.

◆ Recreate()

ROOT::Experimental::TFilePtr TFile::Recreate ( std::string_view  name,
const Options_t opts = Options_t() 
)
static

Open a file with name for reading and writing.

If a file with this name already exists, delete it and create a new one. Else simply create a new file.

Note
: Synchronizes multi-threaded accesses through locks.

Definition at line 171 of file TFile.cxx.

◆ SetCacheDir()

std::string TFile::SetCacheDir ( std::string_view  path)
static

Set the new directory used for cached reads, returns the old directory.

Note
: Synchronizes multi-threaded accesses through locks.

Definition at line 189 of file TFile.cxx.

◆ Write() [1/4]

template<class T >
void ROOT::Experimental::TFile::Write ( std::string_view  name,
const T &  obj 
)
inline

Write an object that is not lifetime managed by this TFileImplBase.

Definition at line 146 of file TFile.hxx.

◆ Write() [2/4]

template<class T >
void ROOT::Experimental::TFile::Write ( std::string_view  name,
const T *  obj 
)
inline

Write an object that is not lifetime managed by this TFileImplBase.

Definition at line 153 of file TFile.hxx.

◆ Write() [3/4]

void ROOT::Experimental::TFile::Write ( std::string_view  name)
inline

Write an object that is already lifetime managed by this TFileImplBase.

Definition at line 159 of file TFile.hxx.

◆ Write() [4/4]

template<class T >
void ROOT::Experimental::TFile::Write ( std::string_view  name,
std::shared_ptr< T > &&  obj 
)
inline

Hand over lifetime management of an object to this TFileImplBase, and write it.

Definition at line 168 of file TFile.hxx.

◆ WriteMemoryWithType()

void TFile::WriteMemoryWithType ( std::string_view  name,
const void address,
TClass cl 
)
private

Serialize the object at address, using the object's TClass.

Definition at line 222 of file TFile.cxx.

Member Data Documentation

◆ fStorage

std::unique_ptr<Internal::TFileStorageInterface> ROOT::Experimental::TFile::fStorage
private

Storage backend.

Definition at line 47 of file TFile.hxx.

Libraries for ROOT::Experimental::TFile:
[legend]

The documentation for this class was generated from the following files: