Logo ROOT  
Reference Guide
Loading...
Searching...
No Matches
TSQLFile Class Referencefinal
I/O » SQL

Access an SQL db via the TFile interface.

The main motivation for the TSQLFile development is to have "transparent" access to SQL data base via standard TFile interface. The main approach that each class (but not each object) has one or two tables with names like _ver$(VERSION) and _raw$(VERSION) For example: TAxis_ver8 or TList_raw5 Second kind of tables appears, when some of class members can not be converted to normalized form or when class has custom streamer. For instance, for TH1 class two tables are required: TH1_ver4 and TH1_raw4 Most of members are stored in TH1_ver4 table column-wise, and only member: Double_t* fBuffer; //[fBufferSize] can not be represented as column while size of array is not fixed. Therefore, fBuffer will be written as list of values in TH1_raw4 table. All objects, stored in the DB, will be registered in table "ObjectsTable". In this there are following columns:

Name Description
"key:id" key identifier to which belong object
"obj:id" object identifier
"Class" object class name
"Version" object class version

Data in each "ObjectsTable" row uniquely identify, in which table and which column object is stored.

In normal situation all class data should be sorted column-wise. Up to now following member are supported:

  1. Basic data types. Here is everything clear. Column SQL type will be as much as possible close to the original type of value.
  2. Fixed array of basic data types. In this case n columns like fArr[0], fArr[1] and so on will be created. If there is multidimensional array, names will be fArr2[1][2][1] and so on
  3. Parent class. In this case version of parent class is stored and data of parent class will be stored with the same obj:id in correspondent table. There is a special case, when parent store nothing (this is for instance TQObject). In that case just -1 is written to avoid any extra checks if table exist or not.
  4. Object as data member. In that case object is saved in normal way to data base and column will contain id of this object.
  5. Pointer on object. Same as before. In case if object was already stored, just its id will be placed in the column. For nullptr pointer 0 is used.
  6. TString. Now column with limited width like VARCAHR(255) in MySQL is used. Later this will be improved to support maximum possible strings
  7. Anything else. Data will be converted to raw format and saved in streamer table. Each row supplied with obj:id and row:id, where row:id indicates data, corresponding to this particular data member, and column will contain this raw:id

All conversion to SQL statements are done with help of TSQLStructure class. This is special hierarchical structure wich internally is very similar to XML structures. TBufferSQL2 creates these structures, when object data is streamed by ROOT and only afterwards all SQL statements will be produced and applied all together. When data is reading, TBufferSQL2 will produce requests to database during unstreaming of object data. Optionally (default this options on) name of column includes suffix which indicates type of column. For instance:

Name Description
*:parent parent class, column contain class version
*:object other object, column contain object id
*:rawdata raw data, column contains id of raw data from streamer table
*:Int_t column with integer value

Use TSQLFile::SetUseSuffixes(kFALSE) to disable suffixes usage. This and several other options can be changed only when TSQLFile created with options "CREATE" or "RECREATE" and only before first write operation. These options are:

Name Description
SetUseSuffixes() suffix usage in column names (default - on)
SetArrayLimit() defines maximum array size, which can has column for each element (default 21)
SetTablesType() table type name in MySQL database (default "InnoDB")
SetUseIndexes() usage of indexes in database (default kIndexesBasic)

Normally these functions should be called immediately after TSQLFile constructor. When objects data written to database, by default START TRANSACTION/COMMIT SQL commands are used before and after data storage. If TSQLFile detects any problems, ROLLBACK command will be used to restore previous state of data base. If transactions not supported by SQL server, they can be disabled by SetUseTransactions(kTransactionsOff). Or user can take responsibility to use transactions function himself. By default only indexes for basic tables are created. In most cases usage of indexes increase performance to data reading, but it also can increase time of writing data to database. There are several modes of index usage available in SetUseIndexes() method There is MakeSelectQuery(TClass*) method, which produces SELECT statement to get objects data of specified class. Difference from simple statement like: mysql> SELECT * FROM TH1I_ver1 that not only data for that class, but also data from parent classes will be extracted from other tables and combined in single result table. Such select query can be useful for external access to objects data.

Up to now MySQL 4.1 and Oracle 9i were tested. Some extra work is required for other SQL databases. Hopefully, this should be straightforward.

Known problems and open questions.

  1. TTree is not supported by TSQLFile. There is independent development of TTreeSQL class, which allows to store trees directly in SQL database
  2. TClonesArray is store objects in raw format, which can not be accessed outside ROOT. This will be changed later.
  3. TDirectory cannot work. Hopefully, will (changes in ROOT basic I/O is required)
  4. Streamer infos are not written to file, therefore schema evolution is not yet supported. All eforts are done to enable this feature in the near future

Example how TSQLFile can be used

A session saving data to a SQL data base

auto dbname = "mysql://host.domain:3306/dbname";
auto username = "username";
auto userpass = "userpass";
// Clean data base and create primary tables
auto f = new TSQLFile(dbname, "recreate", username, userpass);
// Write with standard I/O functions
arr->Write("arr", TObject::kSingleKey);
h1->Write("histo");
// Close connection to DB
delete f;
#define f(i)
Definition RSha256.hxx:104
@ kSingleKey
write collection with single key
Definition TObject.h:100
TSQLFile()
default TSQLFile constructor
Definition TSQLFile.cxx:270
TH1F * h1
Definition legend1.C:5

A session read data from SQL data base

// Open database again in read-only mode
auto f = new TSQLFile(dbname, "open", username, userpass);
// Show list of keys
f->ls();
// Read stored object, again standard ROOT I/O
auto h1 = (TH1*) f->Get("histo");
if (h1!=0) { h1->SetDirectory(0); h1->Draw(); }
auto obj = f->Get("arr");
if (obj!=0) obj->Print("*");
// close connection to DB
delete f;
TH1 is the base class of all histogram classes in ROOT.
Definition TH1.h:109

The "SQL I/O" package is currently under development. Any bug reports and suggestions are welcome. Author: S.Linev, GSI Darmstadt, S.Lin.nosp@m.ev@g.nosp@m.si.de

Definition at line 30 of file TSQLFile.h.

Public Types

enum  { kSingleKey = (1ULL << (0)) , kOverwrite = (1ULL << (1)) , kWriteDelete = (1ULL << (2)) }
enum  {
  kIsOnHeap = 0x01000000 , kNotDeleted = 0x02000000 , kZombie = 0x04000000 , kInconsistent = 0x08000000 ,
  kBitMask = 0x00ffffff
}
enum  { kStartBigFile = 2000000000 }
enum  EAsyncOpenStatus { kAOSNotAsync = -1 , kAOSFailure = 0 , kAOSInProgress = 1 , kAOSSuccess = 2 }
 Asynchronous open request status. More...
enum  ECacheAction { kDisconnect = 0 , kDoNotDisconnect = 1 }
 TTreeCache flushing semantics. More...
enum  EDeprecatedStatusBits { kObjInCanvas = (1ULL << (3)) }
enum  EFileType {
  kDefault = 0 , kLocal = 1 , kNet = 2 , kWeb = 3 ,
  kFile = 4 , kMerge = 5
}
 File type. More...
enum  EIndexesKinds { kIndexesNone = 0 , kIndexesBasic = 1 , kIndexesClass = 2 , kIndexesAll = 3 }
enum  EOpenTimeOut { kInstantTimeout = 0 , kEternalTimeout = 999999999 }
 Open timeout constants. More...
enum  ERelativeTo { kBeg = 0 , kCur = 1 , kEnd = 2 }
enum  EStatusBits {
  k630forwardCompatibility = (1ULL << (2)) , kRecovered = (1ULL << (10)) , kHasReferences = (1ULL << (11)) , kDevNull = (1ULL << (12)) ,
  kWriteError = (1ULL << (14)) , kBinaryFile = (1ULL << (15)) , kRedirected = (1ULL << (16)) , kReproducible = (1ULL << (17)) ,
  kCancelTTreeChangeRequest = (1ULL << (18))
}
 TFile status bits. BIT(13) is taken up by TObject. More...
enum  ETransactionKinds { kTransactionsOff = 0 , kTransactionsAuto = 1 , kTransactionsUser = 2 }

Public Member Functions

 TSQLFile ()
 default TSQLFile constructor
 TSQLFile (const char *dbname, Option_t *option="read", const char *user="user", const char *pass="pass")
 Connects to SQL server with provided arguments.
 ~TSQLFile () override
 destructor of TSQLFile object
void AbstractMethod (const char *method) const
 Call this function within a function that you don't want to define as purely virtual, in order not to force all users deriving from that class to implement that maybe (on their side) unused function; but at the same time, emit a run-time warning if they try to call it, telling that it is not implemented in the derived class: action must thus be taken on the user side to override it.
void Add (TObject *obj, Bool_t replace=kFALSE) override
 Append object to this directory.
void Append (TObject *obj, Bool_t replace=kFALSE) override
 Append object to this directory.
Int_t AppendKey (TKey *key) override
virtual void AppendPad (Option_t *option="")
 Append graphics object to current pad.
void Browse (TBrowser *b) override
 Browse the content of the directory.
void Build (TFile *motherFile=nullptr, TDirectory *motherDir=nullptr) override
Bool_t cd () override
 Change current directory to "this" directory.
Bool_t cd (const char *path) override
 Change current directory to "this" directory or to the directory described by the path if given one.
ULong_t CheckedHash ()
 Check and record whether this class has a consistent Hash/RecursiveRemove setup (*) and then return the regular Hash value for this object.
virtual const char * ClassName () const
 Returns name of class to which the object belongs.
void Clear (Option_t *option="") override
 Delete all objects from a Directory list.
TObjectClone (const char *newname="") const override
 Make a clone of an object using the Streamer facility.
TObjectCloneObject (const TObject *obj, Bool_t autoadd=kTRUE) override
 Clone an object.
void Close (Option_t *option="") final
 Close a SQL file For more comments see TFile::Close() function.
Bool_t Commit ()
 Commit transaction, started by StartTransaction() call.
Int_t Compare (const TObject *obj) const override
 Compare two TNamed objects.
void Copy (TObject &) const override
 Copy this to obj.
virtual Bool_t Cp (const char *dst, Bool_t progressbar=kTRUE, UInt_t bufsize=1000000)
 Allows to copy this file to the dst URL.
TKeyCreateKey (TDirectory *mother, const TObject *obj, const char *name, Int_t bufsize) final
 create SQL key, which will store object in data base
TKeyCreateKey (TDirectory *mother, const void *obj, const TClass *cl, const char *name, Int_t bufsize) final
 create SQL key, which will store object in data base
void Delete (const char *namecycle="") override
 Delete Objects or/and keys in a directory.
virtual void DeleteAll (Option_t *option="")
 Delete all objects from memory.
virtual Int_t DistancetoPrimitive (Int_t px, Int_t py)
 Computes distance from point (px,py) to the object.
void Draw (Option_t *option="") override
 Fill Graphics Structure and Paint.
virtual void DrawClass () const
 Draw class inheritance tree of the class to which this object belongs.
virtual TObjectDrawClone (Option_t *option="") const
 Draw a clone of this object in the current selected pad with: gROOT->SetSelectedPad(c1).
void DrawMap (const char *="*", Option_t *="") final
 Draw map of objects in this file.
virtual void Dump () const
 Dump contents of object on stdout.
virtual void Error (const char *method, const char *msgfmt,...) const
 Issue error message.
virtual void Execute (const char *method, const char *params, Int_t *error=nullptr)
 Execute method on this object with the given parameter string, e.g.
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=nullptr)
 Execute method on this object with parameters stored in the TObjArray.
virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py)
 Execute action corresponding to an event at (px,py).
virtual void Fatal (const char *method, const char *msgfmt,...) const
 Issue fatal error message.
void FillBuffer (char *&) final
 Encode file output buffer.
TKeyFindKey (const char *keyname) const override
TKeyFindKeyAny (const char *keyname) const override
TObjectFindObject (const char *name) const override
 Find object by name in the list of memory objects.
TObjectFindObject (const TObject *obj) const override
 Find object in the list of memory objects.
TObjectFindObjectAny (const char *name) const override
 Find object by name in the list of memory objects of the current directory or its sub-directories.
TObjectFindObjectAnyFile (const char *name) const override
void Flush () final
 Synchronize a file's in-memory and on-disk states.
template<class T>
T * Get (const char *namecycle)
 See documentation of TDirectoryFile::Get(const char *namecycle).
TObjectGet (const char *namecycle) override
 Return pointer to object identified by namecycle.
TArchiveFileGetArchive () const
Long64_t GetArchiveOffset () const
Int_t GetArrayLimit () const
Int_t GetBestBuffer () const
 Return the best buffer size of objects on this file.
Int_t GetBufferSize () const override
virtual Long64_t GetBytesRead () const
virtual Long64_t GetBytesReadExtra () const
virtual Int_t GetBytesToPrefetch () const
 Max number of bytes to prefetch.
virtual Long64_t GetBytesWritten () const
 Return the total number of bytes written so far to the file.
TFileCacheReadGetCacheRead (const TObject *tree=nullptr) const
 Return a pointer to the current read cache.
TFileCacheWriteGetCacheWrite () const
 Return a pointer to the current write cache.
TArrayCGetClassIndex () const
Int_t GetCompressionAlgorithm () const
Float_t GetCompressionFactor ()
 Return the file compression factor.
Int_t GetCompressionLevel () const
Int_t GetCompressionSettings () const
const TDatimeGetCreationDate () const
const char * GetDataBaseName () const
 Return name of data base on the host For Oracle always return 0.
TDirectoryGetDirectory (const char *apath, Bool_t printError=false, const char *funcname="GetDirectory") override
 Find a directory using apath.
virtual Option_tGetDrawOption () const
 Get option used by the graphics system to draw this object.
Long64_t GetEND () const final
virtual const TUrlGetEndpointUrl () const
Int_t GetErrno () const final
 Method returning errno.
Int_t GetFd () const
TFileGetFile () const override
virtual const char * GetIconName () const
 Returns mime type name of object.
Int_t GetIOVersion () const
TKeyGetKey (const char *name, Short_t cycle=9999) const override
virtual TListGetList () const
TListGetListOfFree () const
TListGetListOfKeys () const override
TObjArrayGetListOfProcessIDs () const
const TDatimeGetModificationDate () const
TObjectGetMother () const
TDirectoryGetMotherDir () const
const char * GetName () const override
 Returns name of object.
Int_t GetNbytesFree () const final
Int_t GetNbytesInfo () const final
Int_t GetNbytesKeys () const override
virtual TString GetNewUrl ()
Int_t GetNfree () const final
Int_t GetNkeys () const override
virtual Int_t GetNProcessIDs () const
template<class T>
void GetObject (const char *namecycle, T *&ptr)
 Get an object with proper type checking.
void * GetObjectChecked (const char *namecycle, const char *classname) override
 See documentation of TDirectory::GetObjectCheck(const char *namecycle, const TClass *cl).
void * GetObjectChecked (const char *namecycle, const TClass *cl) override
 Return pointer to object identified by namecycle if and only if the actual object is a type suitable to be stored as a pointer to a "expectedClass" If expectedClass is null, no check is performed.
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 Returns string containing info about the object at position (px,py).
void * GetObjectUnchecked (const char *namecycle) override
 Return pointer to object identified by namecycle.
Option_tGetOption () const override
virtual const char * GetPath () const
 Returns the full path of the directory.
virtual const char * GetPathStatic () const
 Returns the full path of the directory.
Int_t GetQuerisCounter () const
virtual Int_t GetReadCalls () const
Int_t GetRecordHeader (char *buf, Long64_t first, Int_t maxbytes, Int_t &nbytes, Int_t &objlen, Int_t &keylen)
 Read the logical record header starting at a certain postion.
Long64_t GetRelOffset () const
Long64_t GetSeekDir () const override
Long64_t GetSeekFree () const final
Long64_t GetSeekInfo () const final
Long64_t GetSeekKeys () const override
Long64_t GetSeekParent () const override
Long64_t GetSize () const final
 Returns the current file size.
const TListGetStreamerInfoCache ()
 Returns the cached list of StreamerInfos used in this file.
virtual TListGetStreamerInfoList () final
 Read the list of TStreamerInfo objects written to this file.
const char * GetTablesType () const
const char * GetTitle () const override
 Returns title of object.
virtual UInt_t GetUniqueID () const
 Return the unique object id.
Int_t GetUseIndexes () const
Bool_t GetUseSuffixes () const
Int_t GetUseTransactions () const
TUUID GetUUID () const
Int_t GetVersion () const
virtual Bool_t HandleTimer (TTimer *timer)
 Execute action in response of a timer timing out.
ULong_t Hash () const override
 Return hash value for this object.
Bool_t HasInconsistentHash () const
 Return true is the type of this object is known to have an inconsistent setup for Hash and RecursiveRemove (i.e.
virtual void IncrementProcessIDs ()
virtual void Info (const char *method, const char *msgfmt,...) const
 Issue info message.
virtual Bool_t InheritsFrom (const char *classname) const
 Returns kTRUE if object inherits from class "classname".
virtual Bool_t InheritsFrom (const TClass *cl) const
 Returns kTRUE if object inherits from TClass cl.
virtual void Inspect () const
 Dump contents of this object in a graphics canvas.
void InvertBit (UInt_t f)
TClassIsA () const override
virtual Bool_t IsArchive () const
Bool_t IsBinary () const
Bool_t IsBuilt () const
Bool_t IsDestructed () const
 IsDestructed.
virtual Bool_t IsEqual (const TObject *obj) const
 Default equal comparison (objects are equal if they have the same address in memory).
Bool_t IsFolder () const override
 Returns kTRUE in case object contains browsable objects (like containers or lists of other objects).
Bool_t IsModified () const override
Bool_t IsMySQL () const
 checks, if MySQL database
Bool_t IsODBC () const
 checks, if ODBC driver used for database connection
Bool_t IsOnHeap () const
Bool_t IsOpen () const final
 return kTRUE if file is opened and can be accessed
Bool_t IsOracle () const
 checks, if Oracle database
Bool_t IsRaw () const
Bool_t IsSortable () const override
Bool_t IsWritable () const override
Bool_t IsZombie () const
void ls (Option_t *option="") const override
 List file contents.
void MakeFree (Long64_t, Long64_t) final
 Mark unused bytes on the file.
void MakeProject (const char *, const char *="*", Option_t *="new") final
 Generate source code necessary to access the objects stored in the file.
TString MakeSelectQuery (TClass *cl)
 Produce SELECT statement which can be used to get all data of class cl in one SELECT statement.
void Map () final
void Map (Option_t *) final
 List the contents of a file sequentially.
virtual Bool_t Matches (const char *name)
 Return kTRUE if 'url' matches the coordinates of this file.
void MayNotUse (const char *method) const
 Use this method to signal that a method (defined in a base class) may not be called in a derived class (in principle against good design since a child class should not provide less functionality than its parent, however, sometimes it is necessary).
TDirectorymkdir (const char *name, const char *title="", Bool_t returnExistingDirectory=kFALSE) override
 Create a sub-directory "a" or a hierarchy of sub-directories "a/b/c/...".
virtual Bool_t MustFlush () const
virtual Bool_t Notify ()
 This method must be overridden to handle object notification (the base implementation is no-op).
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
 Use this method to declare a method obsolete.
TFileOpenFile (const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0) override
void operator delete (void *, size_t)
 Operator delete for sized deallocation.
void operator delete (void *ptr)
 Operator delete.
void operator delete (void *ptr, void *vp)
 Only called by placement new when throwing an exception.
void operator delete[] (void *, size_t)
 Operator delete [] for sized deallocation.
void operator delete[] (void *ptr)
 Operator delete [].
void operator delete[] (void *ptr, void *vp)
 Only called by placement new[] when throwing an exception.
void * operator new (size_t sz)
void * operator new (size_t sz, void *vp)
void * operator new[] (size_t sz)
void * operator new[] (size_t sz, void *vp)
void Paint (Option_t *="") final
 Paint all objects in the file.
virtual void Pop ()
 Pop on object drawn in a pad to the top of the display list.
void Print (Option_t *="") const final
 Print all objects in the file.
void Purge (Short_t nkeep=1) override
virtual void pwd () const
 Print the path of the directory.
virtual Int_t Read (const char *name)
 Read contents of object with specified name from the current directory.
void ReadAll (Option_t *option="") override
Bool_t ReadBuffer (char *, Int_t) final
 Read a buffer from the file.
Bool_t ReadBuffer (char *, Long64_t, Int_t) final
 Read a buffer from the file at the offset 'pos' in the file.
virtual Bool_t ReadBufferAsync (Long64_t offs, Int_t len)
virtual Bool_t ReadBuffers (char *buf, Long64_t *pos, Int_t *len, Int_t nbuf)
 Read the nbuf blocks described in arrays pos and len.
void ReadFree () final
 Read the FREE linked list.
Int_t ReadKeys (Bool_t forceRead=kTRUE) override
virtual TProcessIDReadProcessID (UShort_t pidf)
 The TProcessID with number pidf is read from this file.
virtual void ReadStreamerInfo ()
 Read the list of StreamerInfo from this file.
Int_t ReadTObject (TObject *obj, const char *keyname) override
Int_t Recover () final
 Attempt to recover file if not correctly closed.
void RecursiveRemove (TObject *obj) override
 Recursively remove object from a Directory.
virtual TObjectRemove (TObject *)
 Remove an object from the in-memory list.
Int_t ReOpen (Option_t *mode) final
 Reopen a file with a different access mode, like from READ to See TFile::Open() for details.
virtual void ResetAfterMerge (TFileMergeInfo *)
void ResetBit (UInt_t f)
void ResetErrno () const final
 Method resetting the errno.
void rmdir (const char *name) override
 Removes subdirectory from the directory When directory is deleted, all keys in all subdirectories will be read first and deleted from file (if exists) Equivalent call is Delete("name;*");.
Bool_t Rollback ()
 Rollback all operations, done after StartTransaction() call.
void Save () override
virtual void SaveAs (const char *filename="", Option_t *option="") const
 Save this object in the file specified by filename.
Int_t SaveObjectAs (const TObject *obj, const char *filename="", Option_t *option="") const override
 Save object in filename, if filename is nullptr or "", a file with "<objectname>.root" is created.
virtual void SavePrimitive (std::ostream &out, Option_t *option="")
 Save a primitive as a C++ statement(s) on output stream "out".
void SaveSelf (Bool_t force=kFALSE) override
void Seek (Long64_t, ERelativeTo=kBeg) final
 Seek to a specific position in the file. Pos it either kBeg, kCur or kEnd.
void SetArrayLimit (Int_t limit=20)
 Defines maximum number of columns for array representation If array size bigger than limit, array data will be converted to raw format This is usefull to prevent tables with very big number of columns If limit==0, all arrays will be stored in raw format If limit<0, all array values will be stored in column form Default value is 21.
void SetBit (UInt_t f)
void SetBit (UInt_t f, Bool_t set)
 Set or unset the user status bits as specified in f.
void SetBufferSize (Int_t bufsize) override
virtual void SetCacheRead (TFileCacheRead *cache, TObject *tree=nullptr, ECacheAction action=kDisconnect)
 Set a pointer to the read cache.
virtual void SetCacheWrite (TFileCacheWrite *cache)
 Set a pointer to the write cache.
virtual void SetCompressionAlgorithm (Int_t algorithm=ROOT::RCompressionSetting::EAlgorithm::kUseGlobal)
 See comments for function SetCompressionSettings.
virtual void SetCompressionLevel (Int_t level=ROOT::RCompressionSetting::ELevel::kUseMin)
 See comments for function SetCompressionSettings.
virtual void SetCompressionSettings (Int_t settings=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault)
 Used to specify the compression level and algorithm.
virtual void SetDrawOption (Option_t *option="")
 Set drawing option for object.
void SetEND (Long64_t) final
void SetModified () override
virtual void SetMother (TObject *mother)
void SetName (const char *newname) override
 Set the name for directory If the directory name is changed after the directory was written once, ROOT currently would NOT change the name of correspondent key in the mother directory.
virtual void SetNameTitle (const char *name, const char *title)
 Set all the TNamed parameters (name and title).
virtual void SetOffset (Long64_t offset, ERelativeTo pos=kBeg)
 Set position from where to start reading.
virtual void SetOption (Option_t *option=">")
virtual void SetReadCalls (Int_t readcalls=0)
void SetSeekDir (Long64_t v) override
void SetTablesType (const char *table_type)
 Defines tables type, which is used in CREATE TABLE statements Now is only used for MySQL database, where following types are supported: "BDB", "HEAP", "ISAM", "InnoDB", "MERGE", "MRG_MYISAM", "MYISAM" Default for TSQLFile is "InnoDB".
virtual void SetTitle (const char *title="")
 Set the title of the TNamed.
void SetTRefAction (TObject *ref, TObject *parent) override
virtual void SetUniqueID (UInt_t uid)
 Set the unique object id.
void SetUseIndexes (Int_t use_type=kIndexesBasic)
 Specify usage of indexes for data tables.
void SetUseSuffixes (Bool_t on=kTRUE)
 enable/disable uasge of suffixes in columns names can be changed before first object is saved into file
void SetUseTransactions (Int_t mode=kTransactionsAuto)
 Defines usage of transactions statements for writing objects data to database.
void SetWritable (Bool_t writable=kTRUE) override
virtual void ShowStreamerInfo ()
 Show the StreamerInfo of all classes written to this file.
Int_t Sizeof () const final
 Return the size in bytes of the file header.
void SkipArrayLimit ()
void StartLogFile (const char *fname)
 start logging of all SQL statements in specified file
Bool_t StartTransaction ()
 Start user transaction.
void StopLogFile ()
 close logging file
void Streamer (TBuffer &) override
 Streamer for TSQLFile class.
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
void SumBuffer (Int_t bufsize)
 Increment statistics for buffer sizes of objects in this file.
virtual void SysError (const char *method, const char *msgfmt,...) const
 Issue system error message.
Bool_t TestBit (UInt_t f) const
Int_t TestBits (UInt_t f) const
virtual void UseCurrentStyle ()
 Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked.
ROOT::Detail::TKeyMapIterable WalkTKeys ()
 Traverses all TKeys in the TFile and returns information about them.
virtual void Warning (const char *method, const char *msgfmt,...) const
 Issue warning message.
Int_t Write (const char *=nullptr, Int_t=0, Int_t=0) const final
 One can not save a const TDirectory object.
Int_t Write (const char *=nullptr, Int_t=0, Int_t=0) final
 Write memory objects to this file.
Bool_t WriteBuffer (const char *, Int_t) final
 Write a buffer to the file.
void WriteDirHeader () override
void WriteFree () final
 Write FREE linked list on the file.
void WriteHeader () final
 Write file info like configurations, title, UUID and other.
void WriteKeys () override
template<typename T>
std::enable_if_t< std::is_base_of< TObject, T >::value, Int_tWriteObject (const T *obj, const char *name, Option_t *option="", Int_t bufsize=0)
 Write an object with proper type checking.
template<typename T>
std::enable_if_t<!std::is_base_of< TObject, T >::value, Int_tWriteObject (const T *obj, const char *name, Option_t *option="", Int_t bufsize=0)
 Write an object with proper type checking.
Int_t WriteObjectAny (const void *obj, const char *classname, const char *name, Option_t *option="", Int_t bufsize=0) override
Int_t WriteObjectAny (const void *obj, const TClass *cl, const char *name, Option_t *option="", Int_t bufsize=0) override
virtual UShort_t WriteProcessID (TProcessID *pid)
 Check if the ProcessID pidd is already in the file, if not, add it and return the index number in the local file list.
void WriteStreamerInfo () final
 Store all TVirtualStreamerInfo, used in file, in sql database.
Int_t WriteTObject (const TObject *obj, const char *name=nullptr, Option_t *option="", Int_t bufsize=0) override

Static Public Member Functions

static void _R__DEPRECATED_ ("will be removed in ROOT v" "7" "." "00" ": " "This function has no effect on ROOT") AddDirectory(Bool_t add
static Bool_t _R__DEPRECATED_ ("will be removed in ROOT v" "7" "." "00" ": " "This function has no effect on ROOT") AddDirectoryStatus()
static TFileOpenHandleAsyncOpen (const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0)
 Submit an asynchronous open request.
static Bool_t Cd (const char *path)
static TClassClass ()
static const char * Class_Name ()
static constexpr Version_t Class_Version ()
static Bool_t Cp (const char *src, const char *dst, Bool_t progressbar=kTRUE, UInt_t buffersize=1000000)
 Allows to copy file from src to dst URL.
static std::atomic< TDirectory * > & CurrentDirectory ()
 Return the current directory for the current thread.
static TFile *& CurrentFile ()
 Return the current ROOT file if any.
static const char * DeclFileName ()
static size_t DecodeNameCycle (const char *namecycle, char *name, Short_t &cycle, const size_t namesize=0)
static EAsyncOpenStatus GetAsyncOpenStatus (const char *name)
 Get status of the async open request related to 'name'.
static EAsyncOpenStatus GetAsyncOpenStatus (TFileOpenHandle *handle)
 Get status of the async open request related to 'handle'.
static const char * GetCacheFileDir ()
 Get the directory where to locally stage/cache remote files.
static Longptr_t GetDtorOnly ()
 Return destructor only flag.
static const TUrlGetEndpointUrl (const char *name)
 Get final URL for file being opened asynchronously.
static Long64_t GetFileBytesRead ()
 Static function returning the total number of bytes read from all files.
static Long64_t GetFileBytesWritten ()
 Static function returning the total number of bytes written to all files.
static Long64_t GetFileCounter ()
static Int_t GetFileReadCalls ()
 Static function returning the total number of read calls from all files.
static Bool_t GetObjectStat ()
 Get status of object stat flag.
static Bool_t GetOnlyStaged ()
 Returns staged only flag.
static UInt_t GetOpenTimeout ()
 Returns open timeout (in ms).
static Int_t GetReadaheadSize ()
 Static function returning the readahead buffer size.
static Bool_t GetReadStreamerInfo ()
 If the streamerinfos are to be read at file opening.
static EFileType GetType (const char *name, Option_t *option="", TString *prefix=nullptr)
 Resolve the file type as a function of the protocol field in 'name'.
static void IncrementFileCounter ()
static TFileOpen (const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0)
 Create / open a file.
static TFileOpen (TFileOpenHandle *handle)
 Waits for the completion of an asynchronous open request.
static Bool_t SetCacheFileDir (std::string_view cacheDir, Bool_t operateDisconnected=kTRUE, Bool_t forceCacheread=kFALSE)
 Sets the directory where to locally stage/cache remote files.
static void SetDtorOnly (void *obj)
 Set destructor only flag.
static void SetFileBytesRead (Long64_t bytes=0)
static void SetFileBytesWritten (Long64_t bytes=0)
static void SetFileReadCalls (Int_t readcalls=0)
static void SetObjectStat (Bool_t stat)
 Turn on/off tracking of objects in the TObjectTable.
static Bool_t SetOnlyStaged (Bool_t onlystaged)
 Sets only staged flag.
static UInt_t SetOpenTimeout (UInt_t timeout)
 Sets open timeout time (in ms). Returns previous timeout value.
static void SetReadaheadSize (Int_t bufsize=256000)
static void SetReadStreamerInfo (Bool_t readinfo=kTRUE)
 Specify if the streamerinfos must be read at file opening.
static Bool_t ShrinkCacheFileDir (Long64_t shrinkSize, Long_t cleanupInteval=0)
 Try to shrink the cache to the desired size.

Protected Types

enum  { kOnlyPrepStep = (1ULL << (3)) }
enum  ELockingKinds { kLockFree = 0 , kLockBusy = 1 }
using SharedGDirectory_t = std::shared_ptr<std::atomic<TDirectory *>>

Protected Member Functions

void AddIdEntry (Long64_t tableid, Int_t subid, Int_t type, const char *name, const char *sqlname, const char *info)
 Add entry into IdsTable, where all tables names and columns names are listed.
void BuildDirectory (TFile *motherFile, TDirectory *motherDir)
 Initialise directory to defaults.
void BuildDirectoryFile (TFile *motherFile, TDirectory *motherDir)
Bool_t cd1 (const char *path)
 Change current directory to "this" directory or to the directory described by the path if given one.
void CleanTargets ()
TString CodeLongString (Long64_t objid, Int_t strid)
 Produces id which will be placed in column instead of string itself.
void CreateBasicTables ()
 Creates initial tables in database This is table with configurations and table with keys Function called once when first object is stored to the file.
Bool_t CreateClassTable (TSQLClassInfo *sqlinfo, TObjArray *colinfos)
 Create normal class table if required.
Bool_t CreateRawTable (TSQLClassInfo *sqlinfo)
 Create the raw table.
Long64_t DefineNextKeyId ()
 Returns next possible key identifier.
TString DefineTableName (const char *clname, Int_t version, Bool_t rawtable)
 Proposes table name for class.
void DeleteKeyFromDB (Long64_t keyid)
 Remove key with specified id from keys table also removes all objects data, related to this table.
Long64_t DirCreateEntry (TDirectory *) final
 Create entry for directory in database.
Int_t DirReadKeys (TDirectory *) final
 Read directory list of keys from database.
void DirWriteHeader (TDirectory *) final
 Update dir header in the file.
void DirWriteKeys (TDirectory *) final
 Write directory keys list to database.
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 Interface to ErrorHandler (protected).
void FillFullPath (TString &buf) const
 Recursive method to fill full path for directory.
TSQLClassInfoFindSQLClassInfo (const char *clname, Int_t version)
 Return (if exists) TSQLClassInfo for specified class name and version.
TSQLClassInfoFindSQLClassInfo (const TClass *cl)
 return (if exists) TSQLClassInfo for specified class
TKeySQLFindSQLKey (TDirectory *dir, Long64_t keyid)
 Search for TKeySQL object with specified keyid.
Bool_t FlushWriteCache ()
 Flush the write cache if active.
virtual EAsyncOpenStatus GetAsyncOpenStatus ()
TSQLResultGetBlobClassData (Long64_t objid, TSQLClassInfo *sqlinfo)
 Method return request results for specified objid from streamer classtable.
TSQLStatementGetBlobClassDataStmt (Long64_t objid, TSQLClassInfo *sqlinfo)
 Method return request results for specified objid from streamer classtable Data returned in form of statement, where direct access to values are possible.
Int_t GetLocking ()
 Return current locking mode for that file.
Bool_t GetLongString (Long64_t objid, Int_t strid, TString &value)
 Returns value of string, extracted from special table, where long strings are stored.
TSQLResultGetNormalClassData (Long64_t objid, TSQLClassInfo *sqlinfo)
 Method return request result for specified objid from normal classtable.
TSQLResultGetNormalClassDataAll (Long64_t minobjid, Long64_t maxobjid, TSQLClassInfo *sqlinfo)
 Return data for several objects from the range from normal class table.
InfoListRet GetStreamerInfoListImpl (bool) final
 Read back streamer infos from database List of streamer infos is always stored with key:id 0, which is not shown in normal keys list.
Bool_t HasTable (const char *name)
 Test if table name exists.
void IncrementModifyCounter ()
 Update value of modify counter in config table Modify counter used to indicate that something was changed in database.
virtual void Init (Bool_t create)
 Initialize a TFile object.
void InitDirectoryFile (TClass *cl=nullptr)
void InitSqlDatabase (Bool_t create)
 initialize sql database and correspondent structures identical to TFile::Init() function
Int_t IsLongStringCode (Long64_t objid, const char *value)
 Checks if this is long string code returns 0, if not or string id.
Bool_t IsReadAccess ()
 dummy, in future should check about read access to database
Bool_t IsTablesExists ()
 Checks if main keys table is existing.
Bool_t IsWriteAccess ()
 Checkis, if lock is free in configuration tables.
void MakeZombie ()
Bool_t ProduceClassSelectQuery (TVirtualStreamerInfo *info, TSQLClassInfo *sqlinfo, TString &columns, TString &tables, Int_t &tablecnt)
 used by MakeClassSelectQuery method to add columns from table of class, specified by TVirtualStreamerInfo structure
Int_t ReadBufferViaCache (char *buf, Int_t len)
 Read buffer via cache.
Bool_t ReadConfigurations ()
 read table configurations as special table
TObjectReadSpecialObject (Long64_t keyid, TObject *obj=nullptr)
 Read data of special kind of objects.
void ReadSQLClassInfos ()
 Read all class infos from IdsTable.
void RegisterContext (TContext *ctxt)
void RegisterGDirectory (SharedGDirectory_t &ptr)
TSQLClassInfoRequestSQLClassInfo (const char *clname, Int_t version)
 Search in database tables for specified class and return TSQLClassInfo object.
TSQLClassInfoRequestSQLClassInfo (const TClass *cl)
 Search in database tables for specified class and return TSQLClassInfo object.
void SavePrimitiveNameTitle (std::ostream &out, const char *variable_name)
 Save object name and title into the output stream "out".
void SaveToDatabase ()
 save data which is not yet in Database Typically this is streamerinfos structures or
void SetLocking (Int_t mode)
 Set locking mode for current database.
Bool_t SQLApplyCommands (TObjArray *cmds)
 supplies set of commands to server Commands is stored as array of TObjString
const char * SQLBigTextType () const
Bool_t SQLCanStatement ()
 Test if DB support statement and number of open statements is not exceeded.
Bool_t SQLCommit ()
 Commit SQL transaction.
const char * SQLCompatibleType (Int_t typ) const
 Returns sql type name which is most closer to ROOT basic type.
const char * SQLDatetimeType () const
const char * SQLDefaultTableType () const
void SQLDeleteAllTables ()
 Delete all tables in database.
void SQLDeleteStatement (TSQLStatement *stmt)
 delete statement and decrease counter
const char * SQLDirIdColumn () const
const char * SQLIdentifierQuote () const
const char * SQLIntType () const
 return SQL integer type
const char * SQLKeyIdColumn () const
Int_t SQLMaxIdentifierLength ()
 returns maximum allowed length of identifiers
Long64_t SQLMaximumValue (const char *tablename, const char *columnname)
 Returns maximum value, found in specified columnname of table tablename Column type should be numeric.
const char * SQLNameSeparator () const
const char * SQLObjectIdColumn () const
Bool_t SQLObjectInfo (Long64_t objid, TString &clname, Version_t &version)
 Read from objects table data for specified objectid.
TObjArraySQLObjectsInfo (Long64_t keyid)
 Produce array of TSQLObjectInfo objects for all objects, belong to that key Array should be deleted by calling function afterwards.
TSQLResultSQLQuery (const char *cmd, Int_t flag=0, Bool_t *res=nullptr)
 Submits query to SQL server.
const char * SQLRawIdColumn () const
Bool_t SQLRollback ()
 Rollback all SQL operations, done after start transaction.
const char * SQLSmallTextType () const
Int_t SQLSmallTextTypeLimit () const
Bool_t SQLStartTransaction ()
 Start SQL transaction.
TSQLStatementSQLStatement (const char *cmd, Int_t bufsize=1000)
 Produces SQL statement for currently conected DB server.
const char * SQLStrIdColumn () const
Bool_t SQLTestTable (const char *tablename)
 Test, if table of specified name exists.
const char * SQLValueQuote () const
Long64_t StoreObjectInTables (Long64_t keyid, const void *obj, const TClass *cl)
 Store object in database. Return stored object id or -1 if error.
Int_t StreamKeysForDirectory (TDirectory *dir, Bool_t doupdate, Long64_t specialkeyid=-1, TKeySQL **specialkey=nullptr)
 read keys for specified directory (when update == kFALSE) or update value for modified keys when update == kTRUE Returns number of successfully read keys or -1 if error
Int_t SysClose (Int_t) final
 Interface to system close. All arguments like in POSIX close().
Int_t SysOpen (const char *, Int_t, UInt_t) final
 Interface to system open. All arguments like in POSIX open().
Int_t SysRead (Int_t, void *, Int_t) final
 Interface to system read. All arguments like in POSIX read().
Long64_t SysSeek (Int_t, Long64_t, Int_t) final
 Interface to system lseek.
Int_t SysStat (Int_t, Long_t *, Long64_t *, Long_t *, Long_t *) final
 Return file stat information.
Int_t SysSync (Int_t) final
 Interface to system fsync. All arguments like in POSIX fsync().
Int_t SysWrite (Int_t, const void *, Int_t) final
 Interface to system write. All arguments like in POSIX write().
void UnregisterContext (TContext *ctxt)
 UnRegister a TContext pointing to this TDirectory object.
Bool_t UpdateKeyData (TKeySQL *key)
 Updates (overwrites) key data in KeysTable.
Bool_t VerifyLongStringTable ()
 Checks that table for big strings is exists If not, will be created.
Long64_t VerifyObjectTable ()
 Checks that objects table is exists If not, table will be created Returns maximum value for existing objects id.
Int_t WriteBufferViaCache (const char *buf, Int_t len)
 Write buffer via cache.
Bool_t WriteKeyData (TKeySQL *key)
 Add entry into keys table.
Bool_t WriteSpecialObject (Long64_t keyid, TObject *obj, const char *name, const char *title)
 write special kind of object like streamer infos or file itself keys for that objects should exist in tables but not indicated in list of keys, therefore users can not get them with TDirectoryFile::Get() method

Static Protected Member Functions

static Bool_t Cd1 (const char *path)
 Change current directory to "path".
static SharedGDirectory_tGetSharedLocalCurrentDirectory ()
 Return the (address of) a shared pointer to the struct holding the actual thread local gDirectory pointer and the atomic_flag for its lock.
static void SavePrimitiveConstructor (std::ostream &out, TClass *cl, const char *variable_name, const char *constructor_agrs="", Bool_t empty_line=kTRUE)
 Save object constructor in the output stream "out".
static void SavePrimitiveDraw (std::ostream &out, const char *variable_name, Option_t *option=nullptr)
 Save invocation of primitive Draw() method Skipped if option contains "nodraw" string.
static TString SavePrimitiveVector (std::ostream &out, const char *prefix, Int_t len, Double_t *arr, Int_t flag=0)
 Save array in the output stream "out" as vector.

Protected Attributes

TArchiveFilefArchive {nullptr}
 !Archive file from which we read this file
Long64_t fArchiveOffset {0}
 !Offset at which file starts in archive
Int_t fArrayLimit
 ! limit for array size. when array bigger, its content converted to raw format
TFileOpenHandlefAsyncHandle {nullptr}
 !For proper automatic cleanup
EAsyncOpenStatus fAsyncOpenStatus {kAOSNotAsync}
 !Status of an asynchronous open request
const char ** fBasicTypes
 ! pointer on list of basic types specific for currently connected SQL server
Long64_t fBEGIN {0}
 First used byte in file.
Int_t fBufferSize {0}
 Default buffer size to create new TKeys.
Long64_t fBytesRead {0}
 Number of bytes read from this file.
Long64_t fBytesReadExtra {0}
 Number of extra bytes (overhead) read by the readahead buffer.
Long64_t fBytesWrite {0}
 Number of bytes written to this file.
TFileCacheReadfCacheRead {nullptr}
 !Pointer to the read cache (if any)
TMapfCacheReadMap {nullptr}
 !Pointer to the read cache (if any)
TFileCacheWritefCacheWrite {nullptr}
 !Pointer to the write cache (if any)
Bool_t fCanChangeConfig
 ! variable indicates can be basic configuration changed or not
TArrayCfClassIndex {nullptr}
 !Index of TStreamerInfo classes written to this file
Int_t fCompress {0}
 Compression level and algorithm.
TContextfContext {nullptr}
 ! Pointer to a list of TContext object pointing to this TDirectory
std::atomic< size_t > fContextPeg {0}
 ! Counter delaying the TDirectory destructor from finishing.
Int_t fD {-1}
 File descriptor.
TDatime fDatimeC
 Date and time when directory is created.
TDatime fDatimeM
 Date and time of last modification.
Long64_t fEND {0}
 Last used byte in file.
TFilefFile {nullptr}
 Pointer to current file in memory.
TListfFree {nullptr}
 Free segments linked list table.
std::vector< SharedGDirectory_tfGDirectories
 ! thread local gDirectory pointing to this object.
bool fGlobalRegistration = true
 ! if true, bypass use of global lists
Bool_t fIdsTableExists
 ! indicate if IdsTable exists
TListfInfoCache {nullptr}
 !Cached list of the streamer infos in this file
Bool_t fInitDone {kFALSE}
 !True if the file has been initialized
Bool_t fIsArchive {kFALSE}
 !True if this is a pure archive file
Bool_t fIsPcmFile {kFALSE}
 !True if the file is a ROOT pcm file.
Bool_t fIsRootFile {kTRUE}
 !True is this is a ROOT file, raw file otherwise
TListfKeys {nullptr}
 Pointer to keys list in memory.
TListfList {nullptr}
 List of objects in memory.
std::ofstream * fLogFile
 ! log file with SQL statements
Bool_t fModified {kFALSE}
 True if directory has been modified.
Int_t fModifyCounter
 ! indicates how many changes was done with database tables
TObjectfMother {nullptr}
 pointer to mother of the directory
Bool_t fMustFlush {kTRUE}
 !True if the file buffers must be flushed
TString fName
Int_t fNbytesFree {0}
 Number of bytes for free segments structure.
Int_t fNbytesInfo {0}
 Number of bytes for StreamerInfo record.
Int_t fNbytesKeys {0}
 Number of bytes for the keys.
Int_t fNbytesName {0}
 Number of bytes in TNamed at creation time.
Bool_t fNoAnchorInName {kFALSE}
 !True if we don't want to force the anchor to be appended to the file name
Int_t fNProcessIDs {0}
 Number of TProcessID written to this file.
Long64_t fOffset {0}
 !Seek offset cache
TListfOpenPhases {nullptr}
 !Time info about open phases
TString fOption
 File options.
const char ** fOtherTypes
 ! pointer on list of other SQL types like TEXT or blob
TString fPathBuffer
 ! Buffer for GetPath() function
TObjArrayfProcessIDs {nullptr}
 !Array of pointers to TProcessIDs
Int_t fQuerisCounter
 ! how many query was applied
Int_t fReadCalls {0}
 Number of read calls ( not counting the cache calls ).
TString fRealName
 Effective real file name (not original url).
Long64_t fSeekDir {0}
 Location of directory on file.
Long64_t fSeekFree {0}
 Location on disk of free segments structure.
Long64_t fSeekInfo {0}
 Location on disk of StreamerInfo record.
Long64_t fSeekKeys {0}
 Location of Keys record on file.
Long64_t fSeekParent {0}
 Location of parent directory on file.
std::atomic_flag fSpinLock
 ! MSVC doesn't support = ATOMIC_FLAG_INIT;
TSQLServerfSQL
 ! interface to SQL database
TListfSQLClassInfos
 ! list of SQL class infos
Int_t fSQLIOversion
 ! version of SQL I/O which is stored in configurations
Int_t fStmtCounter
 ! count numbers of active statements
Double_t fSum2Buffer {0}
 Sum of squares of buffer sizes of objects written so far.
Double_t fSumBuffer {0}
 Sum of buffer sizes of objects written so far.
TString fTablesType
 ! type, used in CREATE TABLE statements
TString fTitle
Char_t fUnits {0}
 Number of bytes for file pointers.
TUrl fUrl
 !URL of file
Int_t fUseIndexes
 ! use indexes for tables: 0 - off, 1 - only for basic tables, 2 + normal class tables, 3 - all tables
TString fUserName
 ! user name, used to access objects from database
Bool_t fUseSuffixes
 ! use suffixes in column names like fValue:Int_t or fObject:pointer
Int_t fUseTransactions
 ! use transaction statements for writing data into the tables
TUUID fUUID {TUUID::UUIDv4()}
 Unique identifier.
Int_t fVersion {0}
 File format version.
Bool_t fWritable {kFALSE}
 True if directory is writable.
std::mutex fWriteMutex
 !Lock for writing baskets / keys into the file.
Int_t fWritten {0}
 Number of objects written so far.

Static Protected Attributes

static Bool_t fgAddDirectory = false
 !
static TListfgAsyncOpenRequests = nullptr
static std::atomic< Long64_tfgBytesRead {0}
 Number of bytes read by all TFile objects.
static std::atomic< Long64_tfgBytesWrite {0}
 Number of bytes written by all TFile objects.
static TString fgCacheFileDir
 Directory where to locally stage files.
static Bool_t fgCacheFileDisconnected = kTRUE
 Indicates, we trust in the files in the cache dir without stat on the cached file.
static Bool_t fgCacheFileForce = kFALSE
 Indicates, to force all READ to CACHEREAD.
static std::atomic< Long64_tfgFileCounter {0}
 Counter for all opened files.
static Bool_t fgOnlyStaged = kFALSE
 Before the file is opened, it is checked, that the file is staged, if not, the open fails.
static UInt_t fgOpenTimeout = TFile::kEternalTimeout
 Timeout for open operations in ms - 0 corresponds to blocking i/o.
static Int_t fgReadaheadSize = 256000
 Readahead buffer size.
static std::atomic< Int_tfgReadCalls {0}
 Number of bytes read from all TFile objects.
static Bool_t fgReadInfo = kTRUE
 if true (default) ReadStreamerInfo is called when opening a file
static ROOT::Internal::RConcurrentHashColl fgTsSIHashes
 !TS Set of hashes built from read streamer infos

Private Member Functions

 TSQLFile (const TSQLFile &)=delete
void operator= (const TSQLFile &)=delete

Static Private Member Functions

static void AddToTObjectTable (TObject *)
 Private helper function which will dispatch to TObjectTable::AddObj.
static void CpProgress (Long64_t bytesread, Long64_t size, TStopwatch &watch)
 Print file copy progress.
static TFileOpenFromCache (const char *name, Option_t *="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0)
 Open a file for reading through the file cache.

Private Attributes

UInt_t fBits
 bit field status word
UInt_t fUniqueID
 object unique identifier

Static Private Attributes

static Longptr_t fgDtorOnly = 0
 object for which to call dtor only (i.e. no delete)
static Bool_t fgObjectStat = kTRUE
 if true keep track of objects in TObjectTable

Friends

class TBufferSQL2
class TKeySQL
class TSqlCmdsBuffer
class TSqlRawBuffer
class TSqlRegistry
class TSQLStructure
class TSQLTableData

#include <TSQLFile.h>

Inheritance diagram for TSQLFile:
TFile TDirectoryFile TDirectory TNamed TObject

Member Typedef Documentation

◆ SharedGDirectory_t

using TDirectory::SharedGDirectory_t = std::shared_ptr<std::atomic<TDirectory *>>
protectedinherited

Definition at line 147 of file TDirectory.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
protectedinherited
Enumerator
kOnlyPrepStep 

Used to request that the class specific implementation of TObject::Write just prepare the objects to be ready to be written but do not actually write them into the TBuffer.

This is just for example by TBufferMerger to request that the TTree inside the file calls TTree::FlushBaskets (outside of the merging lock) and TBufferMerger will later ask for the write (inside the merging lock). To take advantage of this feature the class needs to overload TObject::Write and use this enum value accordingly. (See TTree::Write and TObject::Write) Do not use, this feature will be migrate to the Merge function (See TClass and TTree::Merge)

Definition at line 106 of file TObject.h.

◆ anonymous enum

anonymous enum
inherited
Enumerator
kSingleKey 

write collection with single key

kOverwrite 

overwrite existing object with same name

kWriteDelete 

write object, then delete previous key with same name

Definition at line 99 of file TObject.h.

◆ anonymous enum

anonymous enum
inherited
Enumerator
kIsOnHeap 

object is on heap

kNotDeleted 

object has not been deleted

kZombie 

object ctor failed

kInconsistent 

class overload Hash but does call RecursiveRemove in destructor

kBitMask 

Definition at line 89 of file TObject.h.

◆ anonymous enum

anonymous enum
inherited
Enumerator
kStartBigFile 

Definition at line 278 of file TFile.h.

◆ EAsyncOpenStatus

enum TFile::EAsyncOpenStatus
inherited

Asynchronous open request status.

Enumerator
kAOSNotAsync 
kAOSFailure 
kAOSInProgress 
kAOSSuccess 

Definition at line 142 of file TFile.h.

◆ ECacheAction

enum TFile::ECacheAction
inherited

TTreeCache flushing semantics.

Enumerator
kDisconnect 
kDoNotDisconnect 

Definition at line 148 of file TFile.h.

◆ EDeprecatedStatusBits

Enumerator
kObjInCanvas 

for backward compatibility only, use kMustCleanup

Definition at line 84 of file TObject.h.

◆ EFileType

enum TFile::EFileType
inherited

File type.

Enumerator
kDefault 
kLocal 
kNet 
kWeb 
kFile 
kMerge 

Definition at line 280 of file TFile.h.

◆ EIndexesKinds

Enumerator
kIndexesNone 
kIndexesBasic 
kIndexesClass 
kIndexesAll 

Definition at line 177 of file TSQLFile.h.

◆ ELockingKinds

enum TSQLFile::ELockingKinds
protected
Enumerator
kLockFree 
kLockBusy 

Definition at line 41 of file TSQLFile.h.

◆ EOpenTimeOut

enum TFile::EOpenTimeOut
inherited

Open timeout constants.

Enumerator
kInstantTimeout 
kEternalTimeout 

Definition at line 145 of file TFile.h.

◆ ERelativeTo

enum TFile::ERelativeTo
inherited
Enumerator
kBeg 
kCur 
kEnd 

Definition at line 277 of file TFile.h.

◆ EStatusBits

enum TFile::EStatusBits
inherited

TFile status bits. BIT(13) is taken up by TObject.

Enumerator
k630forwardCompatibility 
kRecovered 
kHasReferences 
kDevNull 
kWriteError 
kBinaryFile 
kRedirected 
kReproducible 
kCancelTTreeChangeRequest 

Definition at line 257 of file TFile.h.

◆ ETransactionKinds

Enumerator
kTransactionsOff 
kTransactionsAuto 
kTransactionsUser 

Definition at line 175 of file TSQLFile.h.

Constructor & Destructor Documentation

◆ TSQLFile() [1/3]

TSQLFile::TSQLFile ( const TSQLFile & )
privatedelete

◆ TSQLFile() [2/3]

TSQLFile::TSQLFile ( )

default TSQLFile constructor

Definition at line 270 of file TSQLFile.cxx.

◆ TSQLFile() [3/3]

TSQLFile::TSQLFile ( const char * dbname,
Option_t * option = "read",
const char * user = "user",
const char * pass = "pass" )

Connects to SQL server with provided arguments.

If the constructor fails in any way IsZombie() will return true. Use IsOpen() to check if the file is (still) open.

Option Description
NEW or CREATE Create a ROOT tables in database if the tables already exists connection is not opened.
RECREATE Create completely new tables. Any existing table will be deleted.
UPDATE Open an existing database for writing. If data base open by other TSQLFile instance for writing,

write access will be rejected.| | BREAKLOCK | Special case when lock was not correctly released by TSQLFile instance. This may happen if program crashed when TSQLFile was open with write access mode.| | READ / OPEN | Open an existing data base for reading.|

For more details see comments for TFile::TFile() constructor. For a moment TSQLFile does not support TTree objects and subdirectories.

Definition at line 296 of file TSQLFile.cxx.

◆ ~TSQLFile()

TSQLFile::~TSQLFile ( )
override

destructor of TSQLFile object

Definition at line 688 of file TSQLFile.cxx.

Member Function Documentation

◆ _R__DEPRECATED_() [1/2]

void TDirectory::_R__DEPRECATED_ ( "will be removed in ROOT v" "7" "." "00" ": " "This function has no effect on ROOT" )
staticinherited

◆ _R__DEPRECATED_() [2/2]

Bool_t TDirectory::_R__DEPRECATED_ ( "will be removed in ROOT v" "7" "." "00" ": " "This function has no effect on ROOT" )
staticinherited

◆ AbstractMethod()

void TObject::AbstractMethod ( const char * method) const
inherited

Call this function within a function that you don't want to define as purely virtual, in order not to force all users deriving from that class to implement that maybe (on their side) unused function; but at the same time, emit a run-time warning if they try to call it, telling that it is not implemented in the derived class: action must thus be taken on the user side to override it.

In other word, this method acts as a "runtime purely virtual" warning instead of a "compiler purely virtual" error.

Warning
This interface is a legacy function that is no longer recommended to be used by new development code.
Note
The name "AbstractMethod" does not imply that it's an abstract method in the strict C++ sense.

Definition at line 1149 of file TObject.cxx.

◆ Add()

void TDirectoryFile::Add ( TObject * obj,
Bool_t replace = kFALSE )
inlineoverridevirtualinherited

Append object to this directory.

See also
Append(TObject*, Bool_t)

Reimplemented from TDirectory.

Reimplemented in RooWorkspace::WSDir.

Definition at line 65 of file TDirectoryFile.h.

◆ AddIdEntry()

void TSQLFile::AddIdEntry ( Long64_t tableid,
Int_t subid,
Int_t type,
const char * name,
const char * sqlname,
const char * info )
protected

Add entry into IdsTable, where all tables names and columns names are listed.

Definition at line 2017 of file TSQLFile.cxx.

◆ AddToTObjectTable()

void TObject::AddToTObjectTable ( TObject * op)
staticprivateinherited

Private helper function which will dispatch to TObjectTable::AddObj.

Included here to avoid circular dependency between header files.

Definition at line 195 of file TObject.cxx.

◆ Append()

void TDirectoryFile::Append ( TObject * obj,
Bool_t replace = kFALSE )
overridevirtualinherited

Append object to this directory.

If replace is true: remove any existing objects with the same name (if the name is not "")

Reimplemented from TDirectory.

Reimplemented in RooWorkspace::WSDir.

◆ AppendKey()

Int_t TDirectoryFile::AppendKey ( TKey * key)
overridevirtualinherited

Reimplemented from TDirectory.

◆ AppendPad()

void TObject::AppendPad ( Option_t * option = "")
virtualinherited

Append graphics object to current pad.

In case no current pad is set yet, create a default canvas with the name "c1".

Definition at line 204 of file TObject.cxx.

◆ AsyncOpen()

TFileOpenHandle * TFile::AsyncOpen ( const char * url,
Option_t * option = "",
const char * ftitle = "",
Int_t compress = ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault,
Int_t netopt = 0 )
staticinherited

Submit an asynchronous open request.

See TFile::Open(const char *, ...) for an explanation of the arguments. A handler is returned which is to be passed to TFile::Open(TFileOpenHandle *) to get the real TFile instance once the file is open. This call never blocks and it is provided to allow parallel submission of file opening operations expected to take a long time. TFile::Open(TFileOpenHandle *) may block if the file is not yet ready. The sequence

TFile::Open(TFile::AsyncOpen(const char *, ...))

is equivalent to

TFile::Open(const char *, ...)

To be effective, the underlying TFile implementation must be able to support asynchronous open functionality. Currently, only TNetXNGFile supports it. If the functionality is not implemented, this call acts transparently by returning an handle with the arguments for the standard synchronous open run by TFile::Open(TFileOpenHandle *). The retuned handle will be adopted by TFile after opening completion in TFile::Open(TFileOpenHandle *); if opening is not finalized the handle must be deleted by the caller.

Definition at line 4053 of file TFile.cxx.

◆ Browse()

void TDirectoryFile::Browse ( TBrowser * b)
overridevirtualinherited

Browse the content of the directory.

Reimplemented from TDirectory.

◆ Build()

void TDirectoryFile::Build ( TFile * motherFile = nullptr,
TDirectory * motherDir = nullptr )
inlineoverridevirtualinherited

Reimplemented from TDirectory.

Definition at line 68 of file TDirectoryFile.h.

◆ BuildDirectory()

void TDirectory::BuildDirectory ( TFile * motherFile,
TDirectory * motherDir )
protectedinherited

Initialise directory to defaults.

If directory is created via default ctor (when dir is read from file) don't add it here to the directory since its name is not yet known. It will be added to the directory in TKey::ReadObj().

Definition at line 255 of file TDirectory.cxx.

◆ BuildDirectoryFile()

void TDirectoryFile::BuildDirectoryFile ( TFile * motherFile,
TDirectory * motherDir )
protectedinherited

◆ Cd()

Bool_t TDirectory::Cd ( const char * path)
staticinherited

◆ cd() [1/2]

Bool_t TDirectoryFile::cd ( )
overridevirtualinherited

Change current directory to "this" directory.

Returns kTRUE (it's guaranteed to succeed).

Reimplemented from TDirectory.

◆ cd() [2/2]

Bool_t TDirectoryFile::cd ( const char * path)
overridevirtualinherited

Change current directory to "this" directory or to the directory described by the path if given one.

Using path one can change the current directory to "path". The absolute path syntax is: file.root:/dir1/dir2 where file.root is the file and /dir1/dir2 the desired subdirectory in the file.

Relative syntax is relative to "this" directory. E.g: ../aa.

Returns kTRUE in case of success.

Reimplemented from TDirectory.

◆ Cd1()

Bool_t TDirectory::Cd1 ( const char * apath)
staticprotectedinherited

Change current directory to "path".

The absolute path syntax is: file.root:/dir1/dir2 where file.root is the file and /dir1/dir2 the desired subdirectory in the file. Relative syntax is relative to the current directory gDirectory, e.g.: ../aa`.

Returns kTRUE in case of success. */

Bool_t TDirectory::Cd(const char *path) { return Cd1(path); }

/** Change current directory to "path". The path syntax is: file.root:/dir1/dir2 where file.root is the file and /dir1/dir2 the desired subdirectory in the file. Relative syntax is relative to the current directory gDirectory, e.g.: ../aa.

Returns kFALSE in case path does not exist.

Definition at line 623 of file TDirectory.cxx.

◆ cd1()

Bool_t TDirectory::cd1 ( const char * apath)
protectedinherited

Change current directory to "this" directory or to the directory described by the path if given one.

Using path one can change the current directory to "path". The absolute path syntax is: file.root:/dir1/dir2 where file.root is the file and /dir1/dir2 the desired subdirectory in the file.

Relative syntax is relative to "this" directory. E.g: ../aa.

Returns kFALSE in case path does not exist.

Definition at line 587 of file TDirectory.cxx.

◆ CheckedHash()

ULong_t TObject::CheckedHash ( )
inlineinherited

Check and record whether this class has a consistent Hash/RecursiveRemove setup (*) and then return the regular Hash value for this object.

The intent is for this routine to be called instead of directly calling the function Hash during "insert" operations. See TObject::HasInconsistenTObjectHash();

(*) The setup is consistent when all classes in the class hierarchy that overload TObject::Hash do call ROOT::CallRecursiveRemoveIfNeeded in their destructor. i.e. it is safe to call the Hash virtual function during the RecursiveRemove operation.

Definition at line 332 of file TObject.h.

◆ Class()

TClass * TSQLFile::Class ( )
static
Returns
TClass describing this class

◆ Class_Name()

const char * TSQLFile::Class_Name ( )
static
Returns
Name of this class

◆ Class_Version()

constexpr Version_t TSQLFile::Class_Version ( )
inlinestaticconstexpr
Returns
Version of this class

Definition at line 254 of file TSQLFile.h.

◆ ClassName()

const char * TObject::ClassName ( ) const
virtualinherited

Returns name of class to which the object belongs.

Definition at line 227 of file TObject.cxx.

◆ CleanTargets()

void TDirectoryFile::CleanTargets ( )
protectedinherited

◆ Clear()

void TDirectory::Clear ( Option_t * option = "")
overridevirtualinherited

Delete all objects from a Directory list.

Reimplemented from TObject.

Definition at line 640 of file TDirectory.cxx.

◆ Clone()

TObject * TNamed::Clone ( const char * newname = "") const
overridevirtualinherited

Make a clone of an object using the Streamer facility.

If newname is specified, this will be the name of the new object.

Reimplemented from TObject.

Reimplemented in TStreamerInfo, and TTreeIndex.

Definition at line 73 of file TNamed.cxx.

◆ CloneObject()

TObject * TDirectoryFile::CloneObject ( const TObject * obj,
Bool_t autoadd = kTRUE )
overridevirtualinherited

Clone an object.

This function is called when the directory is not a TDirectoryFile. This version has to load the I/O package, hence via Cling.

If autoadd is true and if the object class has a DirectoryAutoAdd function, it will be called at the end of the function with the parameter gDirectory. This usually means that the object will be appended to the current ROOT directory.

Reimplemented from TDirectory.

◆ Close()

void TSQLFile::Close ( Option_t * option = "")
finalvirtual

Close a SQL file For more comments see TFile::Close() function.

Reimplemented from TFile.

Definition at line 640 of file TSQLFile.cxx.

◆ CodeLongString()

TString TSQLFile::CodeLongString ( Long64_t objid,
Int_t strid )
protected

Produces id which will be placed in column instead of string itself.

Definition at line 2213 of file TSQLFile.cxx.

◆ Commit()

Bool_t TSQLFile::Commit ( )

Commit transaction, started by StartTransaction() call.

Only after that call data will be written and visible on database side.

Definition at line 578 of file TSQLFile.cxx.

◆ Compare()

Int_t TNamed::Compare ( const TObject * obj) const
overridevirtualinherited

Compare two TNamed objects.

Returns 0 when equal, -1 when this is smaller and +1 when bigger (like strcmp).

Reimplemented from TObject.

Reimplemented in TStructNodeProperty.

Definition at line 84 of file TNamed.cxx.

◆ Copy()

void TFile::Copy ( TObject & object) const
inlineoverridevirtualinherited

Copy this to obj.

Reimplemented from TDirectoryFile.

Definition at line 297 of file TFile.h.

◆ Cp() [1/2]

Bool_t TFile::Cp ( const char * dst,
Bool_t progressbar = kTRUE,
UInt_t bufsize = 1000000 )
virtualinherited

Allows to copy this file to the dst URL.

Returns kTRUE in case of success, kFALSE otherwise.

Definition at line 4706 of file TFile.cxx.

◆ Cp() [2/2]

Bool_t TFile::Cp ( const char * src,
const char * dst,
Bool_t progressbar = kTRUE,
UInt_t bufsize = 1000000 )
staticinherited

Allows to copy file from src to dst URL.

Returns kTRUE in case of success, kFALSE otherwise.

Definition at line 4832 of file TFile.cxx.

◆ CpProgress()

void TFile::CpProgress ( Long64_t bytesread,
Long64_t size,
TStopwatch & watch )
staticprivateinherited

Print file copy progress.

Definition at line 4678 of file TFile.cxx.

◆ CreateBasicTables()

void TSQLFile::CreateBasicTables ( )
protected

Creates initial tables in database This is table with configurations and table with keys Function called once when first object is stored to the file.

Definition at line 1115 of file TSQLFile.cxx.

◆ CreateClassTable()

Bool_t TSQLFile::CreateClassTable ( TSQLClassInfo * sqlinfo,
TObjArray * colinfos )
protected

Create normal class table if required.

Definition at line 2058 of file TSQLFile.cxx.

◆ CreateKey() [1/2]

TKey * TSQLFile::CreateKey ( TDirectory * mother,
const TObject * obj,
const char * name,
Int_t bufsize )
finalvirtual

create SQL key, which will store object in data base

Reimplemented from TFile.

Definition at line 765 of file TSQLFile.cxx.

◆ CreateKey() [2/2]

TKey * TSQLFile::CreateKey ( TDirectory * mother,
const void * obj,
const TClass * cl,
const char * name,
Int_t bufsize )
finalvirtual

create SQL key, which will store object in data base

Reimplemented from TFile.

Definition at line 773 of file TSQLFile.cxx.

◆ CreateRawTable()

Bool_t TSQLFile::CreateRawTable ( TSQLClassInfo * sqlinfo)
protected

Create the raw table.

Definition at line 2140 of file TSQLFile.cxx.

◆ CurrentDirectory()

std::atomic< TDirectory * > & TDirectory::CurrentDirectory ( )
staticinherited

Return the current directory for the current thread.

Definition at line 438 of file TDirectory.cxx.

◆ CurrentFile()

TFile *& TFile::CurrentFile ( )
staticinherited

Return the current ROOT file if any.

Note that if 'cd' has been called on a TDirectory that does not belong to a file, gFile will be unchanged and still points to the file of the previous current directory that was a file.

Definition at line 1098 of file TFile.cxx.

◆ DeclFileName()

const char * TSQLFile::DeclFileName ( )
inlinestatic
Returns
Name of the file containing the class declaration

Definition at line 254 of file TSQLFile.h.

◆ DecodeNameCycle()

size_t TDirectory::DecodeNameCycle ( const char * namecycle,
char * name,
Short_t & cycle,
const size_t namesize = 0 )
staticinherited

◆ DefineNextKeyId()

Long64_t TSQLFile::DefineNextKeyId ( )
protected

Returns next possible key identifier.

Definition at line 1756 of file TSQLFile.cxx.

◆ DefineTableName()

TString TSQLFile::DefineTableName ( const char * clname,
Int_t version,
Bool_t rawtable )
protected

Proposes table name for class.

Definition at line 1833 of file TSQLFile.cxx.

◆ Delete()

void TFile::Delete ( const char * namecycle = "")
overridevirtualinherited

Delete Objects or/and keys in a directory.

  • namecycle has the format name;cycle
  • namecycle = "" same as namecycle ="T*"
  • name = * means all
  • cycle = * means all cycles (memory and keys)
  • cycle = "" or cycle = 9999 ==> apply to a memory object When name=* use T* to delete subdirectories also

To delete one directory, you must specify the directory cycle, eg. file.Delete("dir1;1");

examples:

  • foo : delete object named foo in memory
  • foo* : delete all objects with a name starting with foo
  • foo;1 : delete cycle 1 of foo on file
  • foo;* : delete all cycles of foo on file and also from memory
  • ;2 : delete all objects on file having the cycle 2
  • *; : delete all objects from memory and file
  • T*;* : delete all objects from memory and file and all subdirectories

Reimplemented from TDirectoryFile.

Definition at line 1110 of file TFile.cxx.

◆ DeleteAll()

void TDirectory::DeleteAll ( Option_t * option = "")
virtualinherited

Delete all objects from memory.

Definition at line 691 of file TDirectory.cxx.

◆ DeleteKeyFromDB()

void TSQLFile::DeleteKeyFromDB ( Long64_t keyid)
protected

Remove key with specified id from keys table also removes all objects data, related to this table.

Definition at line 1611 of file TSQLFile.cxx.

◆ DirCreateEntry()

Long64_t TSQLFile::DirCreateEntry ( TDirectory * dir)
finalprotectedvirtual

Create entry for directory in database.

Reimplemented from TFile.

Definition at line 2581 of file TSQLFile.cxx.

◆ DirReadKeys()

Int_t TSQLFile::DirReadKeys ( TDirectory * dir)
finalprotectedvirtual

Read directory list of keys from database.

Reimplemented from TFile.

Definition at line 2596 of file TSQLFile.cxx.

◆ DirWriteHeader()

void TSQLFile::DirWriteHeader ( TDirectory * dir)
finalprotectedvirtual

Update dir header in the file.

Reimplemented from TFile.

Definition at line 2618 of file TSQLFile.cxx.

◆ DirWriteKeys()

void TSQLFile::DirWriteKeys ( TDirectory * dir)
finalprotectedvirtual

Write directory keys list to database.

Reimplemented from TFile.

Definition at line 2610 of file TSQLFile.cxx.

◆ DistancetoPrimitive()

◆ DoError()

void TObject::DoError ( int level,
const char * location,
const char * fmt,
va_list va ) const
protectedvirtualinherited

Interface to ErrorHandler (protected).

Reimplemented in TThread, and TTreeViewer.

Definition at line 1059 of file TObject.cxx.

◆ Draw()

void TFile::Draw ( Option_t * option = "")
overridevirtualinherited

Fill Graphics Structure and Paint.

Loop on all objects (memory or file) and all subdirectories.

Reimplemented from TDirectory.

Definition at line 1123 of file TFile.cxx.

◆ DrawClass()

void TObject::DrawClass ( ) const
virtualinherited

Draw class inheritance tree of the class to which this object belongs.

If a class B inherits from a class A, description of B is drawn on the right side of description of A. Member functions overridden by B are shown in class A with a blue line crossing-out the corresponding member function. The following picture is the class inheritance tree of class TPaveLabel:

Reimplemented in TGFrame, TSystemDirectory, and TSystemFile.

Definition at line 308 of file TObject.cxx.

◆ DrawClone()

TObject * TObject::DrawClone ( Option_t * option = "") const
virtualinherited

Draw a clone of this object in the current selected pad with: gROOT->SetSelectedPad(c1).

If pad was not selected - gPad will be used.

Note
For histograms, use the more specialised TH1::DrawCopy().

Reimplemented in TAxis, TCanvas, TGFrame, TSystemDirectory, and TSystemFile.

Definition at line 319 of file TObject.cxx.

◆ DrawMap()

void TSQLFile::DrawMap ( const char * keys = "*",
Option_t * option = "" )
inlinefinalvirtual

Draw map of objects in this file.

The map drawing is handled by TFileDrawMap. Once the map is drawn, turn on the TCanvas option "View->Event Statusbar". Then, when moving the mouse in the canvas, the "Event Status" panels shows the object corresponding to the mouse position.

Example:

auto f = new TFile("myfile.root");
f->DrawMap();
TFile()
File default Constructor.
Definition TFile.cxx:221

Reimplemented from TFile.

Definition at line 210 of file TSQLFile.h.

◆ Dump()

void TObject::Dump ( ) const
virtualinherited

Dump contents of object on stdout.

Using the information in the object dictionary (class TClass) each data member is interpreted. If a data member is a pointer, the pointer value is printed

The following output is the Dump of a TArrow object:

fAngle 0 Arrow opening angle (degrees)
fArrowSize 0.2 Arrow Size
fOption.*fData
fX1 0.1 X of 1st point
fY1 0.15 Y of 1st point
fX2 0.67 X of 2nd point
fY2 0.83 Y of 2nd point
fUniqueID 0 object unique identifier
fBits 50331648 bit field status word
fLineColor 1 line color
fLineStyle 1 line style
fLineWidth 1 line width
fFillColor 19 fill area color
fFillStyle 1001 fill area style
#define X(type, name)
TString fOption
File options.
Definition TFile.h:169
UInt_t fUniqueID
object unique identifier
Definition TObject.h:46
UInt_t fBits
bit field status word
Definition TObject.h:47
TLine * line
TCanvas * style()
Definition style.C:1

Reimplemented in TClass, TCollection, TGFrame, TGPack, and TSystemFile.

Definition at line 367 of file TObject.cxx.

◆ Error()

void TObject::Error ( const char * location,
const char * fmt,
... ) const
virtualinherited

Issue error message.

Use "location" to specify the method where the error occurred. Accepts standard printf formatting arguments.

Reimplemented in TFitResult.

Definition at line 1098 of file TObject.cxx.

◆ Execute() [1/2]

void TObject::Execute ( const char * method,
const char * params,
Int_t * error = nullptr )
virtualinherited

Execute method on this object with the given parameter string, e.g.

"3.14,1,\"text\"".

Reimplemented in ROOT::R::TRInterface, TCling, TContextMenu, TInterpreter, and TMethodCall.

Definition at line 378 of file TObject.cxx.

◆ Execute() [2/2]

void TObject::Execute ( TMethod * method,
TObjArray * params,
Int_t * error = nullptr )
virtualinherited

Execute method on this object with parameters stored in the TObjArray.

The TObjArray should contain an argv vector like:

argv[0] ... argv[n] = the list of TObjString parameters
Collectable string class.
Definition TObjString.h:28
const Int_t n
Definition legend1.C:16

Reimplemented in ROOT::R::TRInterface, TCling, TContextMenu, TInterpreter, and TMethodCall.

Definition at line 398 of file TObject.cxx.

◆ ExecuteEvent()

◆ Fatal()

void TObject::Fatal ( const char * location,
const char * fmt,
... ) const
virtualinherited

Issue fatal error message.

Use "location" to specify the method where the fatal error occurred. Accepts standard printf formatting arguments.

Definition at line 1126 of file TObject.cxx.

◆ FillBuffer()

void TSQLFile::FillBuffer ( char *& buffer)
inlinefinalvirtual

Encode file output buffer.

The file output buffer contains only the FREE data record.

Reimplemented from TFile.

Definition at line 211 of file TSQLFile.h.

◆ FillFullPath()

void TDirectory::FillFullPath ( TString & buf) const
protectedinherited

Recursive method to fill full path for directory.

Definition at line 1067 of file TDirectory.cxx.

◆ FindKey()

TKey * TDirectoryFile::FindKey ( const char * keyname) const
overridevirtualinherited

Reimplemented from TDirectory.

◆ FindKeyAny()

TKey * TDirectoryFile::FindKeyAny ( const char * keyname) const
overridevirtualinherited

Reimplemented from TDirectory.

◆ FindObject() [1/2]

TObject * TDirectory::FindObject ( const char * name) const
overridevirtualinherited

Find object by name in the list of memory objects.

Reimplemented from TObject.

Reimplemented in TROOT.

Definition at line 790 of file TDirectory.cxx.

◆ FindObject() [2/2]

TObject * TDirectory::FindObject ( const TObject * obj) const
overridevirtualinherited

Find object in the list of memory objects.

Reimplemented from TObject.

Reimplemented in TROOT.

Definition at line 782 of file TDirectory.cxx.

◆ FindObjectAny()

TObject * TDirectoryFile::FindObjectAny ( const char * aname) const
overridevirtualinherited

Find object by name in the list of memory objects of the current directory or its sub-directories.

After this call the current directory is not changed. To automatically set the current directory where the object is found, use FindKeyAny(aname)->ReadObj().

Reimplemented from TDirectory.

◆ FindObjectAnyFile()

TObject * TDirectoryFile::FindObjectAnyFile ( const char * name) const
overridevirtualinherited

Reimplemented from TDirectory.

◆ FindSQLClassInfo() [1/2]

TSQLClassInfo * TSQLFile::FindSQLClassInfo ( const char * clname,
Int_t version )
protected

Return (if exists) TSQLClassInfo for specified class name and version.

Definition at line 1772 of file TSQLFile.cxx.

◆ FindSQLClassInfo() [2/2]

TSQLClassInfo * TSQLFile::FindSQLClassInfo ( const TClass * cl)
protected

return (if exists) TSQLClassInfo for specified class

Definition at line 1791 of file TSQLFile.cxx.

◆ FindSQLKey()

TKeySQL * TSQLFile::FindSQLKey ( TDirectory * dir,
Long64_t keyid )
protected

Search for TKeySQL object with specified keyid.

Definition at line 1670 of file TSQLFile.cxx.

◆ Flush()

void TSQLFile::Flush ( )
inlinefinalvirtual

Synchronize a file's in-memory and on-disk states.

Reimplemented from TFile.

Definition at line 212 of file TSQLFile.h.

◆ FlushWriteCache()

Bool_t TFile::FlushWriteCache ( )
protectedinherited

Flush the write cache if active.

Return kTRUE in case of error

Definition at line 1170 of file TFile.cxx.

◆ Get() [1/2]

template<class T>
T * TDirectoryFile::Get ( const char * namecycle)
inlinevirtualinherited

See documentation of TDirectoryFile::Get(const char *namecycle).

Reimplemented from TDirectory.

Definition at line 82 of file TDirectoryFile.h.

◆ Get() [2/2]

TObject * TDirectoryFile::Get ( const char * namecycle)
overridevirtualinherited

Return pointer to object identified by namecycle.

namecycle has the format name;cycle

  • name = * is illegal, cycle = * is illegal
  • cycle = "" or cycle = 9999 ==> apply to a memory object

examples:

  • foo : get object named foo in memory if object is not in memory, try with highest cycle from file
  • foo;1 : get cycle 1 of foo on file

The retrieved object should in principle derive from TObject. If not, the function TDirectory::GetObject should be called. However, this function will still work for a non-TObject, providing that the calling application cast the return type to the correct type (which is the actual type of the object).

NOTE:

The method GetObject offer better protection and avoid the need for any cast:

MyClass *obj;
directory->GetObject("some object",obj);
if (obj) { ... the object exist and inherits from MyClass ... }

VERY IMPORTANT NOTE:

In case the class of this object derives from TObject but not as a first inheritance, one must use dynamic_cast<>().

Example 1: Normal case:

class MyClass : public TObject, public AnotherClass
Mother of all ROOT objects.
Definition TObject.h:42

then on return, one can do:

MyClass *obj = (MyClass*)directory->Get("some object of MyClass");

Example 2: Special case:

class MyClass : public AnotherClass, public TObject

then on return, one must do:

MyClass *obj = dynamic_cast<MyClass*>(directory->Get("some object of MyClass"));

Of course, dynamic_cast<> can also be used in the example 1.

Reimplemented from TDirectory.

◆ GetArchive()

TArchiveFile * TFile::GetArchive ( ) const
inlineinherited

Definition at line 308 of file TFile.h.

◆ GetArchiveOffset()

Long64_t TFile::GetArchiveOffset ( ) const
inlineinherited

Definition at line 309 of file TFile.h.

◆ GetArrayLimit()

Int_t TSQLFile::GetArrayLimit ( ) const
inline

Definition at line 186 of file TSQLFile.h.

◆ GetAsyncOpenStatus() [1/3]

virtual EAsyncOpenStatus TFile::GetAsyncOpenStatus ( )
inlineprotectedvirtualinherited

Definition at line 215 of file TFile.h.

◆ GetAsyncOpenStatus() [2/3]

TFile::EAsyncOpenStatus TFile::GetAsyncOpenStatus ( const char * name)
staticinherited

Get status of the async open request related to 'name'.

Definition at line 4602 of file TFile.cxx.

◆ GetAsyncOpenStatus() [3/3]

TFile::EAsyncOpenStatus TFile::GetAsyncOpenStatus ( TFileOpenHandle * handle)
staticinherited

Get status of the async open request related to 'handle'.

Definition at line 4631 of file TFile.cxx.

◆ GetBestBuffer()

Int_t TFile::GetBestBuffer ( ) const
inherited

Return the best buffer size of objects on this file.

The best buffer size is estimated based on the current mean value and standard deviation of all objects written so far to this file. Returns mean value + one standard deviation.

Definition at line 1195 of file TFile.cxx.

◆ GetBlobClassData()

TSQLResult * TSQLFile::GetBlobClassData ( Long64_t objid,
TSQLClassInfo * sqlinfo )
protected

Method return request results for specified objid from streamer classtable.

Definition at line 2463 of file TSQLFile.cxx.

◆ GetBlobClassDataStmt()

TSQLStatement * TSQLFile::GetBlobClassDataStmt ( Long64_t objid,
TSQLClassInfo * sqlinfo )
protected

Method return request results for specified objid from streamer classtable Data returned in form of statement, where direct access to values are possible.

Definition at line 2479 of file TSQLFile.cxx.

◆ GetBufferSize()

Int_t TDirectoryFile::GetBufferSize ( ) const
overridevirtualinherited

Reimplemented from TDirectory.

◆ GetBytesRead()

virtual Long64_t TFile::GetBytesRead ( ) const
inlinevirtualinherited

Definition at line 329 of file TFile.h.

◆ GetBytesReadExtra()

virtual Long64_t TFile::GetBytesReadExtra ( ) const
inlinevirtualinherited

Definition at line 330 of file TFile.h.

◆ GetBytesToPrefetch()

Int_t TFile::GetBytesToPrefetch ( ) const
virtualinherited

Max number of bytes to prefetch.

By default this is 75% of the read cache size. But specific TFile implementations may need to change it

Definition at line 4906 of file TFile.cxx.

◆ GetBytesWritten()

Long64_t TFile::GetBytesWritten ( ) const
virtualinherited

Return the total number of bytes written so far to the file.

Definition at line 4268 of file TFile.cxx.

◆ GetCacheFileDir()

const char * TFile::GetCacheFileDir ( )
staticinherited

Get the directory where to locally stage/cache remote files.

Definition at line 4356 of file TFile.cxx.

◆ GetCacheRead()

TFileCacheRead * TFile::GetCacheRead ( const TObject * tree = nullptr) const
inherited

Return a pointer to the current read cache.

Definition at line 1274 of file TFile.cxx.

◆ GetCacheWrite()

TFileCacheWrite * TFile::GetCacheWrite ( ) const
inherited

Return a pointer to the current write cache.

Definition at line 1291 of file TFile.cxx.

◆ GetClassIndex()

TArrayC * TFile::GetClassIndex ( ) const
inlineinherited

Definition at line 314 of file TFile.h.

◆ GetCompressionAlgorithm()

Int_t TFile::GetCompressionAlgorithm ( ) const
inlineinherited

Definition at line 477 of file TFile.h.

◆ GetCompressionFactor()

Float_t TFile::GetCompressionFactor ( )
inherited

Return the file compression factor.

Add total number of compressed/uncompressed bytes for each key. Returns the ratio of the two.

Definition at line 1214 of file TFile.cxx.

◆ GetCompressionLevel()

Int_t TFile::GetCompressionLevel ( ) const
inlineinherited

Definition at line 483 of file TFile.h.

◆ GetCompressionSettings()

Int_t TFile::GetCompressionSettings ( ) const
inlineinherited

Definition at line 489 of file TFile.h.

◆ GetCreationDate()

const TDatime & TDirectoryFile::GetCreationDate ( ) const
inlineinherited

Definition at line 91 of file TDirectoryFile.h.

◆ GetDataBaseName()

const char * TSQLFile::GetDataBaseName ( ) const

Return name of data base on the host For Oracle always return 0.

Definition at line 626 of file TSQLFile.cxx.

◆ GetDirectory()

TDirectory * TDirectoryFile::GetDirectory ( const char * apath,
Bool_t printError = false,
const char * funcname = "GetDirectory" )
overridevirtualinherited

Find a directory using apath.

It apath is null or empty, returns "this" directory. Otherwise use apath to find a directory. The absolute path syntax is: file.root:/dir1/dir2

where file.root is the file and /dir1/dir2 the desired subdirectory in the file. Relative syntax is relative to "this" directory. E.g: ../aa. Returns 0 in case path does not exist. If printError is true, use Error with 'funcname' to issue an error message.

Reimplemented from TDirectory.

◆ GetDrawOption()

Option_t * TObject::GetDrawOption ( ) const
virtualinherited

Get option used by the graphics system to draw this object.

Note that before calling object.GetDrawOption(), you must have called object.Draw(..) before in the current pad.

Reimplemented in TBrowser, TFitEditor, TGedFrame, TGFileBrowser, TRootBrowser, and TRootBrowserLite.

Definition at line 445 of file TObject.cxx.

◆ GetDtorOnly()

Longptr_t TObject::GetDtorOnly ( )
staticinherited

Return destructor only flag.

Definition at line 1196 of file TObject.cxx.

◆ GetEND()

Long64_t TSQLFile::GetEND ( ) const
inlinefinalvirtual

Reimplemented from TFile.

Definition at line 214 of file TSQLFile.h.

◆ GetEndpointUrl() [1/2]

virtual const TUrl * TFile::GetEndpointUrl ( ) const
inlinevirtualinherited

Definition at line 323 of file TFile.h.

◆ GetEndpointUrl() [2/2]

const TUrl * TFile::GetEndpointUrl ( const char * name)
staticinherited

Get final URL for file being opened asynchronously.

Returns 0 is the information is not yet available.

Definition at line 4648 of file TFile.cxx.

◆ GetErrno()

Int_t TSQLFile::GetErrno ( ) const
inlinefinalvirtual

Method returning errno.

Reimplemented from TFile.

Definition at line 215 of file TSQLFile.h.

◆ GetFd()

Int_t TFile::GetFd ( ) const
inlineinherited

Definition at line 322 of file TFile.h.

◆ GetFile()

TFile * TDirectoryFile::GetFile ( ) const
inlineoverridevirtualinherited

Reimplemented from TDirectory.

Definition at line 92 of file TDirectoryFile.h.

◆ GetFileBytesRead()

Long64_t TFile::GetFileBytesRead ( )
staticinherited

Static function returning the total number of bytes read from all files.

Definition at line 4276 of file TFile.cxx.

◆ GetFileBytesWritten()

Long64_t TFile::GetFileBytesWritten ( )
staticinherited

Static function returning the total number of bytes written to all files.

Does not take into account what might still be in the write caches.

Definition at line 4285 of file TFile.cxx.

◆ GetFileCounter()

Long64_t TFile::GetFileCounter ( )
staticinherited

Definition at line 4319 of file TFile.cxx.

◆ GetFileReadCalls()

Int_t TFile::GetFileReadCalls ( )
staticinherited

Static function returning the total number of read calls from all files.

Definition at line 4293 of file TFile.cxx.

◆ GetIconName()

const char * TObject::GetIconName ( ) const
virtualinherited

Returns mime type name of object.

Used by the TBrowser (via TGMimeTypes class). Override for class of which you would like to have different icons for objects of the same class.

Reimplemented in ROOT::Experimental::XRooFit::xRooNode, TASImage, TBranch, TBranchElement, TGeoVolume, TGMainFrame, TKey, TMethodBrowsable, TSystemFile, and TVirtualBranchBrowsable.

Definition at line 472 of file TObject.cxx.

◆ GetIOVersion()

Int_t TSQLFile::GetIOVersion ( ) const
inline

Definition at line 196 of file TSQLFile.h.

◆ GetKey()

TKey * TDirectoryFile::GetKey ( const char * name,
Short_t cycle = 9999 ) const
overridevirtualinherited

Reimplemented from TDirectory.

◆ GetList()

virtual TList * TDirectory::GetList ( ) const
inlinevirtualinherited

Definition at line 223 of file TDirectory.h.

◆ GetListOfFree()

TList * TFile::GetListOfFree ( ) const
inlineinherited

Definition at line 325 of file TFile.h.

◆ GetListOfKeys()

TList * TDirectoryFile::GetListOfKeys ( ) const
inlineoverridevirtualinherited

Reimplemented from TDirectory.

Definition at line 94 of file TDirectoryFile.h.

◆ GetListOfProcessIDs()

TObjArray * TFile::GetListOfProcessIDs ( ) const
inlineinherited

Definition at line 324 of file TFile.h.

◆ GetLocking()

Int_t TSQLFile::GetLocking ( )
protected

Return current locking mode for that file.

Definition at line 1347 of file TSQLFile.cxx.

◆ GetLongString()

Bool_t TSQLFile::GetLongString ( Long64_t objid,
Int_t strid,
TString & value )
protected

Returns value of string, extracted from special table, where long strings are stored.

Definition at line 2273 of file TSQLFile.cxx.

◆ GetModificationDate()

const TDatime & TDirectoryFile::GetModificationDate ( ) const
inlineinherited

Definition at line 95 of file TDirectoryFile.h.

◆ GetMother()

TObject * TDirectory::GetMother ( ) const
inlineinherited

Definition at line 225 of file TDirectory.h.

◆ GetMotherDir()

TDirectory * TDirectory::GetMotherDir ( ) const
inlineinherited

Definition at line 226 of file TDirectory.h.

◆ GetName()

const char * TNamed::GetName ( ) const
inlineoverridevirtualinherited

Returns name of object.

This default method returns the class name. Classes that give objects a name should override this method.

Reimplemented from TObject.

Definition at line 49 of file TNamed.h.

◆ GetNbytesFree()

Int_t TSQLFile::GetNbytesFree ( ) const
inlinefinalvirtual

Reimplemented from TFile.

Definition at line 221 of file TSQLFile.h.

◆ GetNbytesInfo()

Int_t TSQLFile::GetNbytesInfo ( ) const
inlinefinalvirtual

Reimplemented from TFile.

Definition at line 220 of file TSQLFile.h.

◆ GetNbytesKeys()

Int_t TDirectoryFile::GetNbytesKeys ( ) const
inlineoverridevirtualinherited

Reimplemented from TDirectory.

Definition at line 96 of file TDirectoryFile.h.

◆ GetNewUrl()

virtual TString TFile::GetNewUrl ( )
inlinevirtualinherited

Reimplemented in TDavixFile, and TNetXNGFile.

Definition at line 338 of file TFile.h.

◆ GetNfree()

Int_t TSQLFile::GetNfree ( ) const
inlinefinalvirtual

Reimplemented from TFile.

Definition at line 219 of file TSQLFile.h.

◆ GetNkeys()

Int_t TDirectoryFile::GetNkeys ( ) const
inlineoverridevirtualinherited

Reimplemented from TDirectory.

Definition at line 97 of file TDirectoryFile.h.

◆ GetNormalClassData()

TSQLResult * TSQLFile::GetNormalClassData ( Long64_t objid,
TSQLClassInfo * sqlinfo )
protected

Method return request result for specified objid from normal classtable.

Definition at line 2434 of file TSQLFile.cxx.

◆ GetNormalClassDataAll()

TSQLResult * TSQLFile::GetNormalClassDataAll ( Long64_t minobjid,
Long64_t maxobjid,
TSQLClassInfo * sqlinfo )
protected

Return data for several objects from the range from normal class table.

Definition at line 2448 of file TSQLFile.cxx.

◆ GetNProcessIDs()

virtual Int_t TFile::GetNProcessIDs ( ) const
inlinevirtualinherited

Definition at line 327 of file TFile.h.

◆ GetObject()

template<class T>
void TDirectory::GetObject ( const char * namecycle,
T *& ptr )
inlineinherited

Get an object with proper type checking.

If the object doesn't exist in the file or if the type doesn't match, a nullptr is returned. Also see TDirectory::Get().

Definition at line 213 of file TDirectory.h.

◆ GetObjectChecked() [1/2]

void * TDirectoryFile::GetObjectChecked ( const char * namecycle,
const char * classname )
overridevirtualinherited

See documentation of TDirectory::GetObjectCheck(const char *namecycle, const TClass *cl).

Reimplemented from TDirectory.

◆ GetObjectChecked() [2/2]

void * TDirectoryFile::GetObjectChecked ( const char * namecycle,
const TClass * expectedClass )
overridevirtualinherited

Return pointer to object identified by namecycle if and only if the actual object is a type suitable to be stored as a pointer to a "expectedClass" If expectedClass is null, no check is performed.

namecycle has the format name;cycle

  • name = * is illegal, cycle = * is illegal
  • cycle = "" or cycle = 9999 ==> apply to a memory object

VERY IMPORTANT NOTE:

The calling application must cast the returned pointer to the type described by the 2 arguments (i.e. cl):

MyClass *obj = (MyClass*)directory->GetObjectChecked("some object of MyClass","MyClass"));

Note: We recommend using the method TDirectory::GetObject:

MyClass *obj = nullptr;
directory->GetObject("some object inheriting from MyClass",obj);
if (obj) { ... we found what we are looking for ... }
static const char * what
Definition stlLoader.cc:5

Reimplemented from TDirectory.

◆ GetObjectInfo()

char * TObject::GetObjectInfo ( Int_t px,
Int_t py ) const
virtualinherited

Returns string containing info about the object at position (px,py).

This method is typically overridden by classes of which the objects can report peculiarities for different positions. Returned string will be re-used (lock in MT environment).

Reimplemented in TASImage, TAxis3D, TColorWheel, TF1, TF2, TFileDrawMap, TGeoNode, TGeoTrack, TGeoVolume, TGL5DDataSet, TGLHistPainter, TGLParametricEquation, TGLTH3Composition, TGraph, TH1, THistPainter, TNode, TPaletteAxis, TParallelCoordVar, and TVirtualHistPainter.

Definition at line 491 of file TObject.cxx.

◆ GetObjectStat()

Bool_t TObject::GetObjectStat ( )
staticinherited

Get status of object stat flag.

Definition at line 1181 of file TObject.cxx.

◆ GetObjectUnchecked()

void * TDirectoryFile::GetObjectUnchecked ( const char * namecycle)
overridevirtualinherited

Return pointer to object identified by namecycle.

The returned object may or may not derive from TObject.

  • namecycle has the format name;cycle
  • name = * is illegal, cycle = * is illegal
  • cycle = "" or cycle = 9999 ==> apply to a memory object

VERY IMPORTANT NOTE:

The calling application must cast the returned object to the final type, e.g.

MyClass *obj = (MyClass*)directory->GetObject("some object of MyClass");

Reimplemented from TDirectory.

◆ GetOnlyStaged()

Bool_t TFile::GetOnlyStaged ( )
staticinherited

Returns staged only flag.

Definition at line 4456 of file TFile.cxx.

◆ GetOpenTimeout()

UInt_t TFile::GetOpenTimeout ( )
staticinherited

Returns open timeout (in ms).

Definition at line 4436 of file TFile.cxx.

◆ GetOption()

Option_t * TFile::GetOption ( ) const
inlineoverridevirtualinherited

Reimplemented from TObject.

Definition at line 328 of file TFile.h.

◆ GetPath()

const char * TDirectory::GetPath ( ) const
virtualinherited

Returns the full path of the directory.

E.g. file:/dir1/dir2. The returned path will be re-used by the next call to GetPath().

Definition at line 1054 of file TDirectory.cxx.

◆ GetPathStatic()

const char * TDirectory::GetPathStatic ( ) const
virtualinherited

Returns the full path of the directory.

E.g. file:/dir1/dir2. The returned path will be re-used by the next call to GetPath().

Definition at line 1016 of file TDirectory.cxx.

◆ GetQuerisCounter()

Int_t TSQLFile::GetQuerisCounter ( ) const
inline

Definition at line 195 of file TSQLFile.h.

◆ GetReadaheadSize()

Int_t TFile::GetReadaheadSize ( )
staticinherited

Static function returning the readahead buffer size.

Definition at line 4301 of file TFile.cxx.

◆ GetReadCalls()

virtual Int_t TFile::GetReadCalls ( ) const
inlinevirtualinherited

Definition at line 332 of file TFile.h.

◆ GetReadStreamerInfo()

Bool_t TFile::GetReadStreamerInfo ( )
staticinherited

If the streamerinfos are to be read at file opening.

See TFile::SetReadStreamerInfo for more documentation.

Definition at line 3440 of file TFile.cxx.

◆ GetRecordHeader()

Int_t TFile::GetRecordHeader ( char * buf,
Long64_t first,
Int_t maxbytes,
Int_t & nbytes,
Int_t & objlen,
Int_t & keylen )
inherited

Read the logical record header starting at a certain postion.

Parameters
[in]bufpointer to buffer
[in]firstread offset
[in]maxbytesBytes which are read into buf.
[out]nbytesNumber of bytes in record if negative, this is a deleted record if 0, cannot read record, wrong value of argument first
[out]objlenUncompressed object size
[out]keylenLength of logical record header

The function reads nread bytes where nread is the minimum of maxbytes and the number of bytes before the end of file. The function returns nread. Note that the arguments objlen and keylen are returned only if maxbytes >=16

Definition at line 1313 of file TFile.cxx.

◆ GetRelOffset()

Long64_t TFile::GetRelOffset ( ) const
inlineinherited

Definition at line 339 of file TFile.h.

◆ GetSeekDir()

Long64_t TDirectoryFile::GetSeekDir ( ) const
inlineoverridevirtualinherited

Reimplemented from TDirectory.

Definition at line 98 of file TDirectoryFile.h.

◆ GetSeekFree()

Long64_t TSQLFile::GetSeekFree ( ) const
inlinefinalvirtual

Reimplemented from TFile.

Definition at line 222 of file TSQLFile.h.

◆ GetSeekInfo()

Long64_t TSQLFile::GetSeekInfo ( ) const
inlinefinalvirtual

Reimplemented from TFile.

Definition at line 223 of file TSQLFile.h.

◆ GetSeekKeys()

Long64_t TDirectoryFile::GetSeekKeys ( ) const
inlineoverridevirtualinherited

Reimplemented from TDirectory.

Definition at line 100 of file TDirectoryFile.h.

◆ GetSeekParent()

Long64_t TDirectoryFile::GetSeekParent ( ) const
inlineoverridevirtualinherited

Reimplemented from TDirectory.

Definition at line 99 of file TDirectoryFile.h.

◆ GetSharedLocalCurrentDirectory()

TDirectory::SharedGDirectory_t & TDirectory::GetSharedLocalCurrentDirectory ( )
staticprotectedinherited

Return the (address of) a shared pointer to the struct holding the actual thread local gDirectory pointer and the atomic_flag for its lock.

Definition at line 422 of file TDirectory.cxx.

◆ GetSize()

Long64_t TSQLFile::GetSize ( ) const
inlinefinalvirtual

Returns the current file size.

Returns -1 in case the file could not be stat'ed.

Reimplemented from TFile.

Definition at line 224 of file TSQLFile.h.

◆ GetStreamerInfoCache()

const TList * TFile::GetStreamerInfoCache ( )
inherited

Returns the cached list of StreamerInfos used in this file.

Definition at line 1378 of file TFile.cxx.

◆ GetStreamerInfoList()

TList * TFile::GetStreamerInfoList ( )
finalvirtualinherited

Read the list of TStreamerInfo objects written to this file.

The function returns a TList. It is the user's responsibility to delete the list created by this function.

Note the list, in addition to TStreamerInfo object, contains sometimes a TList named 'listOfRules' and containing the schema evolution rules related to the file's content.

Using the list, one can access additional information, e.g.:

TFile f("myfile.root");
auto list = f.GetStreamerInfoList();
auto info = dynamic_cast<TStreamerInfo*>(list->FindObject("MyClass"));
if (info) auto classversionid = info->GetClassVersion();
delete list;
TFile(const TFile &)=delete
Describes a persistent version of a class.
Int_t GetClassVersion() const override

Definition at line 1457 of file TFile.cxx.

◆ GetStreamerInfoListImpl()

TFile::InfoListRet TSQLFile::GetStreamerInfoListImpl ( bool )
finalprotectedvirtual

Read back streamer infos from database List of streamer infos is always stored with key:id 0, which is not shown in normal keys list.

Reimplemented from TFile.

Definition at line 881 of file TSQLFile.cxx.

◆ GetTablesType()

const char * TSQLFile::GetTablesType ( ) const
inline

Definition at line 190 of file TSQLFile.h.

◆ GetTitle()

const char * TNamed::GetTitle ( ) const
inlineoverridevirtualinherited

Returns title of object.

This default method returns the class title (i.e. description). Classes that give objects a title should override this method.

Reimplemented from TObject.

Definition at line 50 of file TNamed.h.

◆ GetType()

TFile::EFileType TFile::GetType ( const char * name,
Option_t * option = "",
TString * prefix = nullptr )
staticinherited

Resolve the file type as a function of the protocol field in 'name'.

If defined, the string 'prefix' is added when testing the locality of a 'name' with network-like structure (i.e. root://host//path); if the file is local, on return 'prefix' will contain the actual local path of the file.

Definition at line 4523 of file TFile.cxx.

◆ GetUniqueID()

UInt_t TObject::GetUniqueID ( ) const
virtualinherited

Return the unique object id.

Definition at line 480 of file TObject.cxx.

◆ GetUseIndexes()

Int_t TSQLFile::GetUseIndexes ( ) const
inline

Definition at line 194 of file TSQLFile.h.

◆ GetUseSuffixes()

Bool_t TSQLFile::GetUseSuffixes ( ) const
inline

Definition at line 184 of file TSQLFile.h.

◆ GetUseTransactions()

Int_t TSQLFile::GetUseTransactions ( ) const
inline

Definition at line 192 of file TSQLFile.h.

◆ GetUUID()

TUUID TDirectory::GetUUID ( ) const
inlineinherited

Definition at line 234 of file TDirectory.h.

◆ GetVersion()

Int_t TFile::GetVersion ( ) const
inlineinherited

Definition at line 333 of file TFile.h.

◆ HandleTimer()

Bool_t TObject::HandleTimer ( TTimer * timer)
virtualinherited

Execute action in response of a timer timing out.

This method must be overridden if an object has to react to timers.

Reimplemented in TGCommandPlugin, TGDNDManager, TGFileContainer, TGHtml, TGLEventHandler, TGPopupMenu, TGraphTime, TGScrollBar, TGShutter, TGTextEdit, TGTextEditor, TGTextEntry, TGTextView, TGToolTip, TGuiBldDragManager, TGWindow, and TTreeViewer.

Definition at line 516 of file TObject.cxx.

◆ Hash()

ULong_t TNamed::Hash ( ) const
inlineoverridevirtualinherited

Return hash value for this object.

Note: If this routine is overloaded in a derived class, this derived class should also add

void CallRecursiveRemoveIfNeeded(TObject &obj)
call RecursiveRemove for obj if gROOT is valid and obj.TestBit(kMustCleanup) is true.
Definition TROOT.h:406

Otherwise, when RecursiveRemove is called (by ~TObject or example) for this type of object, the transversal of THashList and THashTable containers will will have to be done without call Hash (and hence be linear rather than logarithmic complexity). You will also see warnings like

Error in <ROOT::Internal::TCheckHashRecursiveRemoveConsistency::CheckRecursiveRemove>: The class SomeName overrides
TObject::Hash but does not call TROOT::RecursiveRemove in its destructor.
Error("WriteTObject","The current directory (%s) is not associated with a file. The object (%s) has not been written.", GetName(), objname)
ULong_t Hash() const override
Return hash value for this object.
Definition TNamed.h:51
void RecursiveRemove(TObject *obj) override
Recursively remove this object from the list of Cleanups.
Definition TROOT.cxx:2651

Reimplemented from TObject.

Definition at line 51 of file TNamed.h.

◆ HasInconsistentHash()

Bool_t TObject::HasInconsistentHash ( ) const
inlineinherited

Return true is the type of this object is known to have an inconsistent setup for Hash and RecursiveRemove (i.e.

missing call to RecursiveRemove in destructor).

Note: Since the consistency is only tested for during inserts, this routine will return true for object that have never been inserted whether or not they have a consistent setup. This has no negative side-effect as searching for the object with the right or wrong Hash will always yield a not-found answer (Since anyway no hash can be guaranteed unique, there is always a check)

Definition at line 366 of file TObject.h.

◆ HasTable()

Bool_t TSQLFile::HasTable ( const char * name)
protected

Test if table name exists.

Definition at line 1882 of file TSQLFile.cxx.

◆ IncrementFileCounter()

void TFile::IncrementFileCounter ( )
staticinherited

Definition at line 4322 of file TFile.cxx.

◆ IncrementModifyCounter()

void TSQLFile::IncrementModifyCounter ( )
protected

Update value of modify counter in config table Modify counter used to indicate that something was changed in database.

It will be used when multiple instances of TSQLFile for the same data base will be connected.

Definition at line 1187 of file TSQLFile.cxx.

◆ IncrementProcessIDs()

virtual void TFile::IncrementProcessIDs ( )
inlinevirtualinherited

Definition at line 345 of file TFile.h.

◆ Info()

void TObject::Info ( const char * location,
const char * fmt,
... ) const
virtualinherited

Issue info message.

Use "location" to specify the method where the warning occurred. Accepts standard printf formatting arguments.

Definition at line 1072 of file TObject.cxx.

◆ InheritsFrom() [1/2]

Bool_t TObject::InheritsFrom ( const char * classname) const
virtualinherited

Returns kTRUE if object inherits from class "classname".

Reimplemented in TClass.

Definition at line 549 of file TObject.cxx.

◆ InheritsFrom() [2/2]

Bool_t TObject::InheritsFrom ( const TClass * cl) const
virtualinherited

Returns kTRUE if object inherits from TClass cl.

Reimplemented in TClass.

Definition at line 557 of file TObject.cxx.

◆ Init()

void TFile::Init ( Bool_t create)
protectedvirtualinherited

Initialize a TFile object.

Parameters
[in]createCreate a new file.

TFile implementations providing asynchronous open functionality need to override this method to run the appropriate checks before calling this standard initialization part. See TNetXNGFile::Init for an example.

Reimplemented in TDavixFile, and TNetXNGFile.

Definition at line 639 of file TFile.cxx.

◆ InitDirectoryFile()

void TDirectoryFile::InitDirectoryFile ( TClass * cl = nullptr)
protectedinherited

◆ InitSqlDatabase()

void TSQLFile::InitSqlDatabase ( Bool_t create)
protected

initialize sql database and correspondent structures identical to TFile::Init() function

Definition at line 997 of file TSQLFile.cxx.

◆ Inspect()

void TObject::Inspect ( ) const
virtualinherited

Dump contents of this object in a graphics canvas.

Same action as Dump but in a graphical form. In addition pointers to other objects can be followed.

The following picture is the Inspect of a histogram object:

Reimplemented in ROOT::Experimental::XRooFit::xRooNode, TGFrame, TInspectorObject, and TSystemFile.

Definition at line 570 of file TObject.cxx.

◆ InvertBit()

void TObject::InvertBit ( UInt_t f)
inlineinherited

Definition at line 206 of file TObject.h.

◆ IsA()

TClass * TSQLFile::IsA ( ) const
inlineoverridevirtual
Returns
TClass describing current object

Reimplemented from TFile.

Definition at line 254 of file TSQLFile.h.

◆ IsArchive()

virtual Bool_t TFile::IsArchive ( ) const
inlinevirtualinherited

Definition at line 346 of file TFile.h.

◆ IsBinary()

Bool_t TFile::IsBinary ( ) const
inlineinherited

Definition at line 347 of file TFile.h.

◆ IsBuilt()

Bool_t TDirectory::IsBuilt ( ) const
inlineinherited

Definition at line 235 of file TDirectory.h.

◆ IsDestructed()

Bool_t TObject::IsDestructed ( ) const
inlineinherited

IsDestructed.

Note
This function must be non-virtual as it can be used on destructed (but not yet modified) memory. This is used for example in TClonesArray to record the element that have been destructed but not deleted and thus are ready for re-use (by operator new with placement).
Returns
true if this object's destructor has been run.

Definition at line 186 of file TObject.h.

◆ IsEqual()

Bool_t TObject::IsEqual ( const TObject * obj) const
virtualinherited

Default equal comparison (objects are equal if they have the same address in memory).

More complicated classes might want to override this function.

Reimplemented in TGObject, TObjString, TPair, and TQCommand.

Definition at line 589 of file TObject.cxx.

◆ IsFolder()

Bool_t TDirectory::IsFolder ( ) const
inlineoverridevirtualinherited

Returns kTRUE in case object contains browsable objects (like containers or lists of other objects).

Reimplemented from TObject.

Reimplemented in TROOT.

Definition at line 236 of file TDirectory.h.

◆ IsLongStringCode()

Int_t TSQLFile::IsLongStringCode ( Long64_t objid,
const char * value )
protected

Checks if this is long string code returns 0, if not or string id.

Definition at line 2224 of file TSQLFile.cxx.

◆ IsModified()

Bool_t TDirectoryFile::IsModified ( ) const
inlineoverridevirtualinherited

Reimplemented from TDirectory.

Definition at line 101 of file TDirectoryFile.h.

◆ IsMySQL()

Bool_t TSQLFile::IsMySQL ( ) const

checks, if MySQL database

Definition at line 466 of file TSQLFile.cxx.

◆ IsODBC()

Bool_t TSQLFile::IsODBC ( ) const

checks, if ODBC driver used for database connection

Definition at line 486 of file TSQLFile.cxx.

◆ IsOnHeap()

Bool_t TObject::IsOnHeap ( ) const
inlineinherited

Definition at line 160 of file TObject.h.

◆ IsOpen()

Bool_t TSQLFile::IsOpen ( ) const
finalvirtual

return kTRUE if file is opened and can be accessed

Reimplemented from TFile.

Definition at line 709 of file TSQLFile.cxx.

◆ IsOracle()

Bool_t TSQLFile::IsOracle ( ) const

checks, if Oracle database

Definition at line 476 of file TSQLFile.cxx.

◆ IsRaw()

Bool_t TFile::IsRaw ( ) const
inlineinherited

Definition at line 348 of file TFile.h.

◆ IsReadAccess()

Bool_t TSQLFile::IsReadAccess ( )
protected

dummy, in future should check about read access to database

Definition at line 1371 of file TSQLFile.cxx.

◆ IsSortable()

Bool_t TNamed::IsSortable ( ) const
inlineoverridevirtualinherited

Reimplemented from TObject.

Reimplemented in TStructNodeProperty.

Definition at line 52 of file TNamed.h.

◆ IsTablesExists()

Bool_t TSQLFile::IsTablesExists ( )
protected

Checks if main keys table is existing.

Definition at line 1317 of file TSQLFile.cxx.

◆ IsWritable()

Bool_t TDirectoryFile::IsWritable ( ) const
inlineoverridevirtualinherited

Reimplemented from TDirectory.

Definition at line 102 of file TDirectoryFile.h.

◆ IsWriteAccess()

Bool_t TSQLFile::IsWriteAccess ( )
protected

Checkis, if lock is free in configuration tables.

Definition at line 1325 of file TSQLFile.cxx.

◆ IsZombie()

Bool_t TObject::IsZombie ( ) const
inlineinherited

Definition at line 161 of file TObject.h.

◆ ls()

void TFile::ls ( Option_t * option = "") const
overridevirtualinherited

List file contents.

Indentation is used to identify the file tree. Subdirectories are listed first, then objects in memory, then objects on the file.

Reimplemented from TDirectoryFile.

Definition at line 1469 of file TFile.cxx.

◆ MakeFree()

void TSQLFile::MakeFree ( Long64_t first,
Long64_t last )
inlinefinalvirtual

Mark unused bytes on the file.

The list of free segments is in the fFree linked list. When an object is deleted from the file, the freed space is added into the FREE linked list (fFree). The FREE list consists of a chain of consecutive free segments on the file. At the same time, the first 4 bytes of the freed record on the file are overwritten by GAPSIZE where GAPSIZE = -(Number of bytes occupied by the record).

Reimplemented from TFile.

Definition at line 231 of file TSQLFile.h.

◆ MakeProject()

void TSQLFile::MakeProject ( const char * dirname,
const char * classes = "*",
Option_t * option = "new" )
inlinefinalvirtual

Generate source code necessary to access the objects stored in the file.

Generate code in directory dirname for all classes specified in argument classes If classes = "*" (default and currently the only supported value), the function generates an include file for each class in the StreamerInfo list for which a TClass object does not exist.

The code generated includes:

  • dirnameProjectHeaders.h, which contains one #include statement per generated header file
  • dirnameProjectSource.cxx,which contains all the constructors and destructors implementation. and one header per class that is not nested inside another class. The header file name is the fully qualified name of the class after all the special characters "<>,:" are replaced by underscored. For example for std::pair<edm::Vertex,int> the file name is pair_edm__Vertex_int_.h

In the generated classes, map, multimap when the first template parameter is a class are replaced by a vector of pair. set and multiset when the tempalte parameter is a class are replaced by a vector. This is required since we do not have the code needed to order and/or compare the object of the classes. This is a quick explanation of the options available:

Option Details
new (default) A new directory dirname is created. If dirname already exist, an error message is printed and the function returns.
recreate If dirname does not exist, it is created (like in "new"). If dirname already exist, all existing files in dirname are deleted before creating the new files.
update New classes are added to the existing directory. Existing classes with the same name are replaced by the new definition. If the directory dirname doest not exist, same effect as "new".
genreflex Use genreflex rather than rootcling to generate the dictionary.
par Create a PAR file with the minimal set of code needed to read the content of the ROOT file. The name of the PAR file is basename(dirname), with extension '.par' enforced; the PAR file will be created at dirname(dirname).

If, in addition to one of the 3 above options, the option "+" is specified, the function will generate:

  • a script called MAKEP to build the shared lib
  • a dirnameLinkDef.h file
  • rootcling will be run to generate a dirnameProjectDict.cxx file
  • dirnameProjectDict.cxx will be compiled with the current options in compiledata.h
  • a shared lib dirname.so will be created. If the option "++" is specified, the generated shared lib is dynamically linked with the current executable module. If the option "+" and "nocompile" are specified, the utility files are generated as in the option "+" but they are not executed. Example: file.MakeProject("demo","*","recreate++");
  • creates a new directory demo unless it already exist
  • clear the previous directory content
  • generate the xxx.h files for all classes xxx found in this file and not yet known to the Cling dictionary.
  • creates the build script MAKEP
  • creates a LinkDef.h file
  • runs rootcling generating demoProjectDict.cxx
  • compiles demoProjectDict.cxx into demoProjectDict.o
  • generates a shared lib demo.so
  • dynamically links the shared lib demo.so to the executable If only the option "+" had been specified, one can still link the shared lib to the current executable module with:
    gSystem->load("demo/demo.so");
    

The following feature is not yet enabled: One can restrict the list of classes to be generated by using expressions like:

classes = "Ali*" generate code only for classes starting with Ali
classes = "myClass" generate code for class MyClass only.

Reimplemented from TFile.

Definition at line 232 of file TSQLFile.h.

◆ MakeSelectQuery()

TString TSQLFile::MakeSelectQuery ( TClass * cl)

Produce SELECT statement which can be used to get all data of class cl in one SELECT statement.

This statement also can be used to create VIEW by command like mysql> CREATE VIEW TH1I_view AS $CLASSSELECT$ Where $CLASSSELECT$ argument should be produced by call f->MakeSelectQuery(TH1I::Class()); VIEWs supported by latest MySQL 5 and Oracle

Definition at line 1214 of file TSQLFile.cxx.

◆ MakeZombie()

void TObject::MakeZombie ( )
inlineprotectedinherited

Definition at line 55 of file TObject.h.

◆ Map() [1/2]

void TSQLFile::Map ( )
inlinefinalvirtual

Reimplemented from TFile.

Definition at line 234 of file TSQLFile.h.

◆ Map() [2/2]

void TSQLFile::Map ( Option_t * opt)
inlinefinalvirtual

List the contents of a file sequentially.

For each logical record found, it prints:

Date/Time  Record_Adress Logical_Record_Length  ClassName  CompressionFactor

Example of output

20010404/150437  At:64        N=150       TFile
20010404/150440  At:214       N=28326     TBasket        CX =  1.13
20010404/150440  At:28540     N=29616     TBasket        CX =  1.08
20010404/150440  At:58156     N=29640     TBasket        CX =  1.08
20010404/150440  At:87796     N=29076     TBasket        CX =  1.10
20010404/150440  At:116872    N=10151     TBasket        CX =  3.15
20010404/150441  At:127023    N=28341     TBasket        CX =  1.13
20010404/150441  At:155364    N=29594     TBasket        CX =  1.08
20010404/150441  At:184958    N=29616     TBasket        CX =  1.08
20010404/150441  At:214574    N=29075     TBasket        CX =  1.10
20010404/150441  At:243649    N=9583      TBasket        CX =  3.34
20010404/150442  At:253232    N=28324     TBasket        CX =  1.13
20010404/150442  At:281556    N=29641     TBasket        CX =  1.08
20010404/150442  At:311197    N=29633     TBasket        CX =  1.08
20010404/150442  At:340830    N=29091     TBasket        CX =  1.10
20010404/150442  At:369921    N=10341     TBasket        CX =  3.09
20010404/150442  At:380262    N=509       TH1F           CX =  1.93
20010404/150442  At:380771    N=1769      TH2F           CX =  4.32
20010404/150442  At:382540    N=1849      TProfile       CX =  1.65
20010404/150442  At:384389    N=18434     TNtuple        CX =  4.51
20010404/150442  At:402823    N=307       KeysList
20010404/150443  At:403130    N=4548      StreamerInfo   CX =  3.65
20010404/150443  At:407678    N=86        FreeSegments
20010404/150443  At:407764    N=1         END

If the parameter opt contains "forComp", the Date/Time is omitted and the decompressed size is also printed.

Record_Adress Logical_Record_Length Key_Length Object_Record_Length ClassName CompressionFactor

If the parameter opt contains "extended", the name and title of the keys are added: 20200820/155031 At:100 N=180 TFile name: hsimple.root title: Demo ROOT file with histograms 220200820/155032 At:280 N=28880 TBasket CX = 1.11 name: random title: ntuple 220200820/155032 At:29160 N=29761 TBasket CX = 1.08 name: px title: ntuple 220200820/155032 At:58921 N=29725 TBasket CX = 1.08 name: py title: ntuple 220200820/155032 At:88646 N=29209 TBasket CX = 1.10 name: pz title: ntuple 220200820/155032 At:117855 N=10197 TBasket CX = 3.14 name: i title: ntuple ... 20200820/155032 At:405110 N=808 TNtuple CX = 3.53 name: ntuple title: Demo ntuple 20200820/155706 At:405918 N=307 KeysList name: hsimple.root title: Demo ROOT file with histograms 20200820/155032 At:406225 N=8556 StreamerInfo CX = 3.42 name: StreamerInfo title: Doubly linked list 20200820/155708 At:414781 N=86 FreeSegments name: hsimple.root title: Demo ROOT file with histograms 20200820/155708 At:414867 N=1 END

Note: The combined size of the classname, name and title is truncated to 476 characters (a little more for regular keys of small files)

Reimplemented from TFile.

Definition at line 233 of file TSQLFile.h.

◆ Matches()

Bool_t TFile::Matches ( const char * url)
virtualinherited

Return kTRUE if 'url' matches the coordinates of this file.

The check is implementation dependent and may need to be overload by each TFile implementation relying on this check. The default implementation checks the file name only.

Definition at line 4468 of file TFile.cxx.

◆ MayNotUse()

void TObject::MayNotUse ( const char * method) const
inherited

Use this method to signal that a method (defined in a base class) may not be called in a derived class (in principle against good design since a child class should not provide less functionality than its parent, however, sometimes it is necessary).

Definition at line 1160 of file TObject.cxx.

◆ mkdir()

TDirectory * TDirectoryFile::mkdir ( const char * name,
const char * title = "",
Bool_t returnExistingDirectory = kFALSE )
overridevirtualinherited

Create a sub-directory "a" or a hierarchy of sub-directories "a/b/c/...".

Parameters
namethe name or hierarchy of the subdirectory ("a" or "a/b/c")
titlethe title
returnExistingDirectoryif key-name is already existing, the returned value points to preexisting sub-directory if true and to nullptr if false.
Returns
a pointer to the created sub-directory, not to the top sub-directory of the hierarchy (in the above example, the returned TDirectory * points to "c"). In case of an error, it returns nullptr. In case of a preexisting sub-directory (hierarchy) with the requested name, the return value depends on the parameter returnExistingDirectory.

In particular, the steps to create first a/b/c and then a/b/d without receiving errors are:

TFile * file = new TFile("afile","RECREATE");
file->mkdir("a");
file->cd("a");
gDirectory->mkdir("b/c");
gDirectory->cd("b");
gDirectory->mkdir("d");
#define gDirectory
Definition TDirectory.h:385
Bool_t cd() override
Change current directory to "this" directory.
TDirectory * mkdir(const char *name, const char *title="", Bool_t returnExistingDirectory=kFALSE) override
Create a sub-directory "a" or a hierarchy of sub-directories "a/b/c/...".

or

TFile * file = new TFile("afile","RECREATE");
file->mkdir("a");
file->cd("a");
gDirectory->mkdir("b/c");
gDirectory->mkdir("b/d", "", true);

Reimplemented from TDirectory.

◆ MustFlush()

virtual Bool_t TFile::MustFlush ( ) const
inlinevirtualinherited

Definition at line 361 of file TFile.h.

◆ Notify()

Bool_t TObject::Notify ( )
virtualinherited

This method must be overridden to handle object notification (the base implementation is no-op).

Different objects in ROOT use the Notify method for different purposes, in coordination with other objects that call this method at the appropriate time.

For example, TLeaf uses it to load class information; TBranchRef to load contents of referenced branches TBranchRef; most notably, based on Notify, TChain implements a callback mechanism to inform interested parties when it switches to a new sub-tree.

Reimplemented in h1analysis, h1analysisTreeReader, TARInterruptHandler, TASInputHandler, TASInterruptHandler, TASLogHandler, TASSigPipeHandler, TBlinkTimer, TBranchElement, TBranchRef, TBreakLineCom, TBrowserTimer, TCollection, TDelCharCom, TDelTextCom, TFileHandler, TGContainerKeyboardTimer, TGContainerScrollTimer, TGInputHandler, TGLRedrawTimer, TGTextEditHist, TGuiBldDragManagerRepeatTimer, TIdleTimer, TInsCharCom, TInsTextCom, TInterruptHandler, TLeafObject, TMessageHandler, TNotifyLink< Type >, TNotifyLink< RNoCleanupNotifierHelper >, TNotifyLink< ROOT::Detail::TBranchProxy >, TNotifyLink< TTreeReader >, TPopupDelayTimer, TProcessEventTimer, TRefTable, TRepeatTimer, TSBRepeatTimer, TSelector, TSelectorDraw, TSelectorEntries, TSignalHandler, TSingleShotCleaner, TSocketHandler, TStdExceptionHandler, TSysEvtHandler, TTermInputHandler, TThreadTimer, TTimeOutTimer, TTimer, TTipDelayTimer, TTree, TTreeFormula, TTreeFormulaManager, TTreeReader, TViewTimer, and TViewUpdateTimer.

Definition at line 618 of file TObject.cxx.

◆ Obsolete()

void TObject::Obsolete ( const char * method,
const char * asOfVers,
const char * removedFromVers ) const
inherited

Use this method to declare a method obsolete.

Specify as of which version the method is obsolete and as from which version it will be removed.

Definition at line 1169 of file TObject.cxx.

◆ Open() [1/2]

TFile * TFile::Open ( const char * url,
Option_t * options = "",
const char * ftitle = "",
Int_t compress = ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault,
Int_t netopt = 0 )
staticinherited

Create / open a file.

The type of the file can be either a TFile or any TFile derived class for which an plugin library handler has been registered with the plugin manager (for the plugin manager see the TPluginManager class). The returned type of TFile depends on the file name specified by 'url'. If 'url' is a '|'-separated list of file URLs, the 'URLs' are tried sequentially in the specified order until a successful open. If the file starts with "root:", "roots:" or "rootk:" an XRootD-backed file will be returned, with "http:" a curl-based file, with "file:" a local TFile, etc. (see the list of TFile plugin handlers in $ROOTSYS/etc/system.rootrc for regular expressions that will be checked) and as last a local file will be tried. Before opening a file via a remote API, a check is made to see if the URL specifies a local file. If that is the case the file will be opened via a normal TFile. To force the opening of a local file via a specify as host "localhost". The netopt argument is not used, any more. For the meaning of the options and other arguments see the constructors of the individual file classes. In case of error, it returns a nullptr.

For TFile implementations supporting asynchronous file open, see TFile::AsyncOpen(...), it is possible to request a timeout with the option TIMEOUT=<secs>: the timeout must be specified in seconds and it will be internally checked with granularity of one millisec. For remote files there is the option: CACHEREAD opens an existing file for reading through the file cache. The file will be downloaded to the cache and opened from there. If the download fails, it will be opened remotely. The file will be downloaded to the directory specified by SetCacheFileDir().

The caller is responsible for deleting the pointer. In READ mode, a nullptr is returned if the file does not exist or cannot be opened. In CREATE mode, a nullptr is returned if the file already exists or cannot be created. In RECREATE mode, a nullptr is returned if the file can not be created. In UPDATE mode, a nullptr is returned if the file cannot be created or opened.

Definition at line 3787 of file TFile.cxx.

◆ Open() [2/2]

TFile * TFile::Open ( TFileOpenHandle * fh)
staticinherited

Waits for the completion of an asynchronous open request.

Returns the pointer to the associated TFile, transferring ownership of the handle to the TFile instance.

Definition at line 4149 of file TFile.cxx.

◆ OpenFile()

TFile * TDirectoryFile::OpenFile ( const char * name,
Option_t * option = "",
const char * ftitle = "",
Int_t compress = ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault,
Int_t netopt = 0 )
overridevirtualinherited

Reimplemented from TDirectory.

◆ OpenFromCache()

TFile * TFile::OpenFromCache ( const char * name,
Option_t * = "",
const char * ftitle = "",
Int_t compress = ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault,
Int_t netopt = 0 )
staticprivateinherited

Open a file for reading through the file cache.

The file will be downloaded to the cache and opened from there. If the download fails, it will be opened remotely. The file will be downloaded to the directory specified by SetCacheFileDir().

Definition at line 3572 of file TFile.cxx.

◆ operator delete() [1/3]

void TObject::operator delete ( void * ptr,
size_t size )
inherited

Operator delete for sized deallocation.

Definition at line 1234 of file TObject.cxx.

◆ operator delete() [2/3]

void TObject::operator delete ( void * ptr)
inherited

Operator delete.

Definition at line 1212 of file TObject.cxx.

◆ operator delete() [3/3]

void TObject::operator delete ( void * ptr,
void * vp )
inherited

Only called by placement new when throwing an exception.

Definition at line 1266 of file TObject.cxx.

◆ operator delete[]() [1/3]

void TObject::operator delete[] ( void * ptr,
size_t size )
inherited

Operator delete [] for sized deallocation.

Definition at line 1245 of file TObject.cxx.

◆ operator delete[]() [2/3]

void TObject::operator delete[] ( void * ptr)
inherited

Operator delete [].

Definition at line 1223 of file TObject.cxx.

◆ operator delete[]() [3/3]

void TObject::operator delete[] ( void * ptr,
void * vp )
inherited

Only called by placement new[] when throwing an exception.

Definition at line 1274 of file TObject.cxx.

◆ operator new() [1/2]

void * TObject::operator new ( size_t sz)
inlineinherited

Definition at line 189 of file TObject.h.

◆ operator new() [2/2]

void * TObject::operator new ( size_t sz,
void * vp )
inlineinherited

Definition at line 191 of file TObject.h.

◆ operator new[]() [1/2]

void * TObject::operator new[] ( size_t sz)
inlineinherited

Definition at line 190 of file TObject.h.

◆ operator new[]() [2/2]

void * TObject::operator new[] ( size_t sz,
void * vp )
inlineinherited

Definition at line 192 of file TObject.h.

◆ operator=()

void TSQLFile::operator= ( const TSQLFile & )
privatedelete

◆ Paint()

void TSQLFile::Paint ( Option_t * option = "")
inlinefinalvirtual

Paint all objects in the file.

Reimplemented from TFile.

Definition at line 235 of file TSQLFile.h.

◆ Pop()

void TObject::Pop ( )
virtualinherited

Pop on object drawn in a pad to the top of the display list.

I.e. it will be drawn last and on top of all other primitives.

Reimplemented in TFrame, TPad, and TVirtualPad.

Definition at line 640 of file TObject.cxx.

◆ Print()

void TSQLFile::Print ( Option_t * option = "") const
inlinefinalvirtual

Print all objects in the file.

Reimplemented from TFile.

Definition at line 236 of file TSQLFile.h.

◆ ProduceClassSelectQuery()

Bool_t TSQLFile::ProduceClassSelectQuery ( TVirtualStreamerInfo * info,
TSQLClassInfo * sqlinfo,
TString & columns,
TString & tables,
Int_t & tablecnt )
protected

used by MakeClassSelectQuery method to add columns from table of class, specified by TVirtualStreamerInfo structure

Definition at line 1236 of file TSQLFile.cxx.

◆ Purge()

void TDirectoryFile::Purge ( Short_t nkeep = 1)
overridevirtualinherited

Reimplemented from TDirectory.

◆ pwd()

void TDirectory::pwd ( ) const
virtualinherited

Print the path of the directory.

Definition at line 1205 of file TDirectory.cxx.

◆ Read()

Int_t TObject::Read ( const char * name)
virtualinherited

Read contents of object with specified name from the current directory.

First the key with the given name is searched in the current directory, next the key buffer is deserialized into the object. The object must have been created before via the default constructor. See TObject::Write().

Reimplemented in TBuffer, TKey, TKeySQL, and TKeyXML.

Definition at line 673 of file TObject.cxx.

◆ ReadAll()

void TDirectoryFile::ReadAll ( Option_t * option = "")
overridevirtualinherited

Reimplemented from TDirectory.

◆ ReadBuffer() [1/2]

Bool_t TSQLFile::ReadBuffer ( char * buf,
Int_t len )
inlinefinalvirtual

Read a buffer from the file.

This is the basic low level read operation. Returns kTRUE in case of failure.

Reimplemented from TFile.

Definition at line 237 of file TSQLFile.h.

◆ ReadBuffer() [2/2]

Bool_t TSQLFile::ReadBuffer ( char * buf,
Long64_t pos,
Int_t len )
inlinefinalvirtual

Read a buffer from the file at the offset 'pos' in the file.

Returns kTRUE in case of failure. Compared to ReadBuffer(char*, Int_t), this routine does not change the cursor on the physical file representation (fD) if the data is in this TFile's cache.

Reimplemented from TFile.

Definition at line 238 of file TSQLFile.h.

◆ ReadBufferAsync()

Bool_t TFile::ReadBufferAsync ( Long64_t offs,
Int_t len )
virtualinherited

Reimplemented in TDavixFile.

Definition at line 4892 of file TFile.cxx.

◆ ReadBuffers()

Bool_t TFile::ReadBuffers ( char * buf,
Long64_t * pos,
Int_t * len,
Int_t nbuf )
virtualinherited

Read the nbuf blocks described in arrays pos and len.

The value pos[i] is the seek position of block i of length len[i]. Note that for nbuf=1, this call is equivalent to TFile::ReafBuffer. Returns kTRUE in case of failure.

Reimplemented in TDavixFile, TDCacheFile, and TNetXNGFile.

Definition at line 1873 of file TFile.cxx.

◆ ReadBufferViaCache()

Int_t TFile::ReadBufferViaCache ( char * buf,
Int_t len )
protectedinherited

Read buffer via cache.

Returns 0 if the requested block is not in the cache, 1 in case read via cache was successful, 2 in case read via cache failed.

Definition at line 1941 of file TFile.cxx.

◆ ReadConfigurations()

Bool_t TSQLFile::ReadConfigurations ( )
protected

read table configurations as special table

Definition at line 1053 of file TSQLFile.cxx.

◆ ReadFree()

void TSQLFile::ReadFree ( )
inlinefinalvirtual

Read the FREE linked list.

Every file has a linked list (fFree) of free segments. This linked list has been written on the file via WriteFree as a single data record.

Reimplemented from TFile.

Definition at line 239 of file TSQLFile.h.

◆ ReadKeys()

Int_t TDirectoryFile::ReadKeys ( Bool_t forceRead = kTRUE)
overridevirtualinherited

Reimplemented from TDirectory.

◆ ReadProcessID()

TProcessID * TFile::ReadProcessID ( UShort_t pidf)
virtualinherited

The TProcessID with number pidf is read from this file.

If the object is not already entered in the gROOT list, it is added.

Definition at line 2003 of file TFile.cxx.

◆ ReadSpecialObject()

TObject * TSQLFile::ReadSpecialObject ( Long64_t keyid,
TObject * obj = nullptr )
protected

Read data of special kind of objects.

Definition at line 850 of file TSQLFile.cxx.

◆ ReadSQLClassInfos()

void TSQLFile::ReadSQLClassInfos ( )
protected

Read all class infos from IdsTable.

Definition at line 1910 of file TSQLFile.cxx.

◆ ReadStreamerInfo()

void TFile::ReadStreamerInfo ( )
virtualinherited

Read the list of StreamerInfo from this file.

The key with name holding the list of TStreamerInfo objects is read. The corresponding TClass objects are updated. Note that this function is not called if the static member fgReadInfo is false. (see TFile::SetReadStreamerInfo)

Definition at line 3303 of file TFile.cxx.

◆ ReadTObject()

Int_t TDirectoryFile::ReadTObject ( TObject * obj,
const char * keyname )
overridevirtualinherited

Reimplemented from TDirectory.

◆ Recover()

Int_t TSQLFile::Recover ( )
inlinefinalvirtual

Attempt to recover file if not correctly closed.

The function returns the number of keys that have been recovered. If no keys can be recovered, the file will be declared Zombie by the calling function. This function is automatically called when opening a file. If the file is open in read only mode, the file is not modified. If open in update mode and the function finds something to recover, a new directory header is written to the file. When opening the file gain no message from Recover will be reported. If keys have been recovered, the file is usable and you can safely read the corresponding objects. If the file is not usable (a zombie), you can test for this case with code like:

TFile f("myfile.root");
if (f.IsZombie()) {<actions to take if file is unusable>}

If the file has been recovered, the bit kRecovered is set in the TFile object in memory. You can test if the file has been recovered with

if (f.TestBit(TFile::kRecovered)) {... the file has been recovered}

When writing TTrees to a file, it is important to save the Tree header at regular intervals (see TTree::AutoSave). If a file containing a Tree is recovered, the last Tree header written to the file will be used. In this case all the entries in all the branches written before writing the header are valid entries. One can disable the automatic recovery procedure by setting

TFile.Recover 0

in the system.rootrc file.

Reimplemented from TFile.

Definition at line 240 of file TSQLFile.h.

◆ RecursiveRemove()

void TDirectory::RecursiveRemove ( TObject * obj)
overridevirtualinherited

Recursively remove object from a Directory.

Reimplemented from TObject.

Reimplemented in TROOT.

Definition at line 1213 of file TDirectory.cxx.

◆ RegisterContext()

void TDirectory::RegisterContext ( TContext * ctxt)
protectedinherited

◆ RegisterGDirectory()

void TDirectory::RegisterGDirectory ( SharedGDirectory_t & ptr)
protectedinherited

◆ Remove()

TObject * TDirectory::Remove ( TObject * obj)
virtualinherited

Remove an object from the in-memory list.

Reimplemented in TROOT.

Definition at line 1222 of file TDirectory.cxx.

◆ ReOpen()

Int_t TSQLFile::ReOpen ( Option_t * mode)
finalvirtual

Reopen a file with a different access mode, like from READ to See TFile::Open() for details.

Reimplemented from TFile.

Definition at line 718 of file TSQLFile.cxx.

◆ RequestSQLClassInfo() [1/2]

TSQLClassInfo * TSQLFile::RequestSQLClassInfo ( const char * clname,
Int_t version )
protected

Search in database tables for specified class and return TSQLClassInfo object.

Definition at line 1799 of file TSQLFile.cxx.

◆ RequestSQLClassInfo() [2/2]

TSQLClassInfo * TSQLFile::RequestSQLClassInfo ( const TClass * cl)
protected

Search in database tables for specified class and return TSQLClassInfo object.

Definition at line 1902 of file TSQLFile.cxx.

◆ ResetAfterMerge()

virtual void TDirectoryFile::ResetAfterMerge ( TFileMergeInfo * )
virtualinherited

Reimplemented in TMemFile.

◆ ResetBit()

void TObject::ResetBit ( UInt_t f)
inlineinherited

Definition at line 203 of file TObject.h.

◆ ResetErrno()

void TSQLFile::ResetErrno ( ) const
inlinefinalvirtual

Method resetting the errno.

Reimplemented from TFile.

Definition at line 216 of file TSQLFile.h.

◆ rmdir()

void TDirectoryFile::rmdir ( const char * name)
overridevirtualinherited

Removes subdirectory from the directory When directory is deleted, all keys in all subdirectories will be read first and deleted from file (if exists) Equivalent call is Delete("name;*");.

Reimplemented from TDirectory.

◆ Rollback()

Bool_t TSQLFile::Rollback ( )

Rollback all operations, done after StartTransaction() call.

Database should return to initial state.

Definition at line 592 of file TSQLFile.cxx.

◆ Save()

void TDirectoryFile::Save ( )
overridevirtualinherited

Reimplemented from TDirectory.

◆ SaveAs()

void TObject::SaveAs ( const char * filename = "",
Option_t * option = "" ) const
virtualinherited

Save this object in the file specified by filename.

  • if "filename" contains ".root" the object is saved in filename as root binary file.
  • if "filename" contains ".xml" the object is saved in filename as a xml ascii file.
  • if "filename" contains ".cc" the object is saved in filename as C code independent from ROOT. The code is generated via SavePrimitive(). Specific code should be implemented in each object to handle this option. Like in TF1::SavePrimitive().
  • otherwise the object is written to filename as a CINT/C++ script. The C++ code to rebuild this object is generated via SavePrimitive(). The "option" parameter is passed to SavePrimitive. By default it is an empty string. It can be used to specify the Draw option in the code generated by SavePrimitive.

    The function is available via the object context menu.

Reimplemented in ROOT::Experimental::XRooFit::xRooNode, TClassTree, TFolder, TGeoVolume, TGObject, TGraph, TH1, TPad, TPaveClass, TSpline3, TSpline5, TSpline, TTreePerfStats, and TVirtualPad.

Definition at line 708 of file TObject.cxx.

◆ SaveObjectAs()

Int_t TDirectoryFile::SaveObjectAs ( const TObject * obj,
const char * filename = "",
Option_t * option = "" ) const
overridevirtualinherited

Save object in filename, if filename is nullptr or "", a file with "<objectname>.root" is created.

The name of the key is the object name. By default new file will be created. Using option "a", one can append object to the existing ROOT file. If the operation is successful, it returns the number of bytes written to the file otherwise it returns 0. By default a message is printed. Use option "q" to not print the message. If filename contains ".json" extension, JSON representation of the object will be created and saved in the text file. Such file can be used in JavaScript ROOT (https://root.cern/js/) to display object in web browser When creating JSON file, option string may contain compression level from 0 to 3 (default 0)

Reimplemented from TDirectory.

◆ SavePrimitive()

void TObject::SavePrimitive ( std::ostream & out,
Option_t * option = "" )
virtualinherited

Save a primitive as a C++ statement(s) on output stream "out".

Reimplemented in TAnnotation, TArc, TArrow, TASImage, TAxis3D, TBox, TButton, TCanvas, TChain, TCrown, TCurlyArc, TCurlyLine, TCutG, TDiamond, TEfficiency, TEllipse, TExec, TF12, TF1, TF2, TF3, TFrame, TGaxis, TGButton, TGButtonGroup, TGCanvas, TGCheckButton, TGColorSelect, TGColumnLayout, TGComboBox, TGCompositeFrame, TGContainer, TGDockableFrame, TGDoubleHSlider, TGDoubleVSlider, TGedMarkerSelect, TGedPatternSelect, TGeoArb8, TGeoBBox, TGeoBoolNode, TGeoCombiTrans, TGeoCompositeShape, TGeoCone, TGeoConeSeg, TGeoCtub, TGeoDecayChannel, TGeoElementRN, TGeoEltu, TGeoGtra, TGeoHalfSpace, TGeoHMatrix, TGeoHype, TGeoIdentity, TGeoIntersection, TGeoMaterial, TGeoMedium, TGeoMixture, TGeoPara, TGeoParaboloid, TGeoPatternCylPhi, TGeoPatternCylR, TGeoPatternParaX, TGeoPatternParaY, TGeoPatternParaZ, TGeoPatternSphPhi, TGeoPatternSphR, TGeoPatternSphTheta, TGeoPatternTrapZ, TGeoPatternX, TGeoPatternY, TGeoPatternZ, TGeoPcon, TGeoPgon, TGeoRotation, TGeoScaledShape, TGeoShapeAssembly, TGeoSphere, TGeoSubtraction, TGeoTessellated, TGeoTorus, TGeoTranslation, TGeoTrap, TGeoTrd1, TGeoTrd2, TGeoTube, TGeoTubeSeg, TGeoUnion, TGeoVolume, TGeoXtru, TGFileContainer, TGFont, TGFrame, TGFSComboBox, TGGC, TGGroupFrame, TGHButtonGroup, TGHorizontal3DLine, TGHorizontalFrame, TGHorizontalLayout, TGHProgressBar, TGHScrollBar, TGHSlider, TGHSplitter, TGHtml, TGIcon, TGLabel, TGLayoutHints, TGLineStyleComboBox, TGLineWidthComboBox, TGListBox, TGListDetailsLayout, TGListLayout, TGListTree, TGListView, TGLVContainer, TGMainFrame, TGMatrixLayout, TGMdiFrame, TGMdiMainFrame, TGMdiMenuBar, TGMenuBar, TGMenuTitle, TGNumberEntry, TGNumberEntryField, TGPictureButton, TGPopupMenu, TGProgressBar, TGRadioButton, TGraph2D, TGraph2DAsymmErrors, TGraph2DErrors, TGraph, TGraphAsymmErrors, TGraphBentErrors, TGraphEdge, TGraphErrors, TGraphMultiErrors, TGraphNode, TGraphPolar, TGraphPolargram, TGraphStruct, TGroupButton, TGRowLayout, TGShapedFrame, TGShutter, TGShutterItem, TGSplitFrame, TGStatusBar, TGTab, TGTabLayout, TGTableLayout, TGTableLayoutHints, TGTextButton, TGTextEdit, TGTextEntry, TGTextLBEntry, TGTextView, TGTileLayout, TGToolBar, TGTransientFrame, TGTripleHSlider, TGTripleVSlider, TGVButtonGroup, TGVertical3DLine, TGVerticalFrame, TGVerticalLayout, TGVFileSplitter, TGVProgressBar, TGVScrollBar, TGVSlider, TGVSplitter, TGXYLayout, TGXYLayoutHints, TH1, TH2Poly, THelix, THStack, TLatex, TLegend, TLine, TMacro, TMarker3DBox, TMarker, TMathText, TMultiGraph, TPad, TPaletteAxis, TParallelCoord, TParallelCoordVar, TPave, TPaveClass, TPaveLabel, TPaveStats, TPavesText, TPaveText, TPie, TPieSlice, TPolyLine3D, TPolyLine, TPolyMarker3D, TPolyMarker, TProfile2D, TProfile3D, TProfile, TRootContainer, TRootEmbeddedCanvas, TScatter2D, TScatter, TSlider, TSliderBox, TSpline3, TSpline5, TStyle, TText, TTreePerfStats, and TWbox.

Definition at line 858 of file TObject.cxx.

◆ SavePrimitiveConstructor()

void TObject::SavePrimitiveConstructor ( std::ostream & out,
TClass * cl,
const char * variable_name,
const char * constructor_agrs = "",
Bool_t empty_line = kTRUE )
staticprotectedinherited

Save object constructor in the output stream "out".

Can be used as first statement when implementing SavePrimitive() method for the object

Definition at line 777 of file TObject.cxx.

◆ SavePrimitiveDraw()

void TObject::SavePrimitiveDraw ( std::ostream & out,
const char * variable_name,
Option_t * option = nullptr )
staticprotectedinherited

Save invocation of primitive Draw() method Skipped if option contains "nodraw" string.

Definition at line 845 of file TObject.cxx.

◆ SavePrimitiveNameTitle()

void TNamed::SavePrimitiveNameTitle ( std::ostream & out,
const char * variable_name )
protectedinherited

Save object name and title into the output stream "out".

Definition at line 135 of file TNamed.cxx.

◆ SavePrimitiveVector()

TString TObject::SavePrimitiveVector ( std::ostream & out,
const char * prefix,
Int_t len,
Double_t * arr,
Int_t flag = 0 )
staticprotectedinherited

Save array in the output stream "out" as vector.

Create unique variable name based on prefix value Returns name of vector which can be used in constructor or in other places of C++ code If flag === kTRUE, just add empty line If flag === 111, check if array is empty and return nullptr or <vectorname>.data()

Definition at line 796 of file TObject.cxx.

◆ SaveSelf()

void TDirectoryFile::SaveSelf ( Bool_t force = kFALSE)
overridevirtualinherited

Reimplemented from TDirectory.

◆ SaveToDatabase()

void TSQLFile::SaveToDatabase ( )
protected

save data which is not yet in Database Typically this is streamerinfos structures or

Definition at line 905 of file TSQLFile.cxx.

◆ Seek()

void TSQLFile::Seek ( Long64_t offset,
ERelativeTo pos = kBeg )
inlinefinalvirtual

Seek to a specific position in the file. Pos it either kBeg, kCur or kEnd.

Reimplemented from TFile.

Definition at line 242 of file TSQLFile.h.

◆ SetArrayLimit()

void TSQLFile::SetArrayLimit ( Int_t limit = 20)

Defines maximum number of columns for array representation If array size bigger than limit, array data will be converted to raw format This is usefull to prevent tables with very big number of columns If limit==0, all arrays will be stored in raw format If limit<0, all array values will be stored in column form Default value is 21.

Definition at line 513 of file TSQLFile.cxx.

◆ SetBit() [1/2]

void TObject::SetBit ( UInt_t f)
inlineinherited

Definition at line 202 of file TObject.h.

◆ SetBit() [2/2]

void TObject::SetBit ( UInt_t f,
Bool_t set )
inherited

Set or unset the user status bits as specified in f.

Definition at line 888 of file TObject.cxx.

◆ SetBufferSize()

void TDirectoryFile::SetBufferSize ( Int_t bufsize)
overridevirtualinherited

Reimplemented from TDirectory.

◆ SetCacheFileDir()

Bool_t TFile::SetCacheFileDir ( std::string_view cachedir,
Bool_t operatedisconnected = kTRUE,
Bool_t forcecacheread = kFALSE )
staticinherited

Sets the directory where to locally stage/cache remote files.

If the directory is not writable by us return kFALSE.

Definition at line 4328 of file TFile.cxx.

◆ SetCacheRead()

void TFile::SetCacheRead ( TFileCacheRead * cache,
TObject * tree = nullptr,
ECacheAction action = kDisconnect )
virtualinherited

Set a pointer to the read cache.

This relinquishes ownership of the previous cache, so if you do not already have a pointer to the previous cache (and there was a previous cache), you ought to retrieve (and delete it if needed) using:

TFileCacheRead *older = myfile->GetCacheRead();

The action specifies how to behave when detaching a cache from the the TFile. If set to (default) kDisconnect, the contents of the cache will be flushed when it is removed from the file, and it will disconnect the cache object from the file. In almost all cases, this is what you want. If you want to disconnect the cache temporarily from this tree and re-attach later to the same fil, you can set action to kDoNotDisconnect. This will allow things like prefetching to continue in the background while it is no longer the default cache for the TTree. Except for a few expert use cases, kDisconnect is likely the correct setting.

WARNING: if action=kDoNotDisconnect, you MUST delete the cache before TFile.

Definition at line 2417 of file TFile.cxx.

◆ SetCacheWrite()

void TFile::SetCacheWrite ( TFileCacheWrite * cache)
virtualinherited

Set a pointer to the write cache.

If file is null the existing write cache is deleted.

Definition at line 2440 of file TFile.cxx.

◆ SetCompressionAlgorithm()

void TFile::SetCompressionAlgorithm ( Int_t algorithm = ROOT::RCompressionSetting::EAlgorithm::kUseGlobal)
virtualinherited

See comments for function SetCompressionSettings.

Definition at line 2357 of file TFile.cxx.

◆ SetCompressionLevel()

void TFile::SetCompressionLevel ( Int_t level = ROOT::RCompressionSetting::ELevel::kUseMin)
virtualinherited

See comments for function SetCompressionSettings.

Definition at line 2371 of file TFile.cxx.

◆ SetCompressionSettings()

void TFile::SetCompressionSettings ( Int_t settings = ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault)
virtualinherited

Used to specify the compression level and algorithm.

See the TFile constructor for the details.

Definition at line 2390 of file TFile.cxx.

◆ SetDrawOption()

void TObject::SetDrawOption ( Option_t * option = "")
virtualinherited

Set drawing option for object.

This option only affects the drawing style and is stored in the option field of the TObjOptLink supporting a TPad's primitive list (TList). Note that it does not make sense to call object.SetDrawOption(option) before having called object.Draw().

Reimplemented in RooPlot, TAxis, TBrowser, TGedFrame, TGFrame, TPad, TPaveStats, TRootBrowserLite, TSystemDirectory, and TSystemFile.

Definition at line 871 of file TObject.cxx.

◆ SetDtorOnly()

void TObject::SetDtorOnly ( void * obj)
staticinherited

Set destructor only flag.

Definition at line 1204 of file TObject.cxx.

◆ SetEND()

void TSQLFile::SetEND ( Long64_t )
inlinefinalvirtual

Reimplemented from TFile.

Definition at line 244 of file TSQLFile.h.

◆ SetFileBytesRead()

void TFile::SetFileBytesRead ( Long64_t bytes = 0)
staticinherited

Definition at line 4310 of file TFile.cxx.

◆ SetFileBytesWritten()

void TFile::SetFileBytesWritten ( Long64_t bytes = 0)
staticinherited

Definition at line 4313 of file TFile.cxx.

◆ SetFileReadCalls()

void TFile::SetFileReadCalls ( Int_t readcalls = 0)
staticinherited

Definition at line 4316 of file TFile.cxx.

◆ SetLocking()

void TSQLFile::SetLocking ( Int_t mode)
protected

Set locking mode for current database.

Definition at line 1333 of file TSQLFile.cxx.

◆ SetModified()

void TDirectoryFile::SetModified ( )
inlineoverridevirtualinherited

Reimplemented from TDirectory.

Definition at line 118 of file TDirectoryFile.h.

◆ SetMother()

virtual void TDirectory::SetMother ( TObject * mother)
inlinevirtualinherited

Definition at line 259 of file TDirectory.h.

◆ SetName()

void TDirectory::SetName ( const char * newname)
overridevirtualinherited

Set the name for directory If the directory name is changed after the directory was written once, ROOT currently would NOT change the name of correspondent key in the mother directory.

DO NOT use this method to 'rename a directory'. Renaming a directory is currently NOT supported.

Reimplemented from TNamed.

Definition at line 1297 of file TDirectory.cxx.

◆ SetNameTitle()

void TNamed::SetNameTitle ( const char * name,
const char * title )
virtualinherited

Set all the TNamed parameters (name and title).

WARNING: if the name is changed and the object is a member of a THashTable or THashList container the container must be Rehash()'ed after SetName(). For example the list of objects in the current directory is a THashList.

Reimplemented in RooAbsArg, RooAbsData, RooDataHist, RooDataSet, RooFitResult, RooPlot, TContextMenu, TGraph2D, TGraph, TH1, and TNode.

Definition at line 163 of file TNamed.cxx.

◆ SetObjectStat()

void TObject::SetObjectStat ( Bool_t stat)
staticinherited

Turn on/off tracking of objects in the TObjectTable.

Definition at line 1188 of file TObject.cxx.

◆ SetOffset()

void TFile::SetOffset ( Long64_t offset,
ERelativeTo pos = kBeg )
virtualinherited

Set position from where to start reading.

Definition at line 2305 of file TFile.cxx.

◆ SetOnlyStaged()

Bool_t TFile::SetOnlyStaged ( Bool_t onlystaged)
staticinherited

Sets only staged flag.

Returns previous value of flag. When true we check before opening the file if it is staged, if not, the open fails.

Definition at line 4446 of file TFile.cxx.

◆ SetOpenTimeout()

UInt_t TFile::SetOpenTimeout ( UInt_t timeout)
staticinherited

Sets open timeout time (in ms). Returns previous timeout value.

Definition at line 4426 of file TFile.cxx.

◆ SetOption()

virtual void TFile::SetOption ( Option_t * option = ">")
inlinevirtualinherited

Definition at line 381 of file TFile.h.

◆ SetReadaheadSize()

void TFile::SetReadaheadSize ( Int_t bufsize = 256000)
staticinherited

Definition at line 4307 of file TFile.cxx.

◆ SetReadCalls()

virtual void TFile::SetReadCalls ( Int_t readcalls = 0)
inlinevirtualinherited

Definition at line 382 of file TFile.h.

◆ SetReadStreamerInfo()

void TFile::SetReadStreamerInfo ( Bool_t readinfo = kTRUE)
staticinherited

Specify if the streamerinfos must be read at file opening.

If fgReadInfo is true (default) TFile::ReadStreamerInfo is called when opening the file. It may be interesting to set fgReadInfo to false to speedup the file opening time or in case libraries containing classes referenced by the file have not yet been loaded. if fgReadInfo is false, one can still read the StreamerInfo with myfile.ReadStreamerInfo();

Definition at line 3430 of file TFile.cxx.

◆ SetSeekDir()

void TDirectoryFile::SetSeekDir ( Long64_t v)
inlineoverridevirtualinherited

Reimplemented from TDirectory.

Definition at line 119 of file TDirectoryFile.h.

◆ SetTablesType()

void TSQLFile::SetTablesType ( const char * tables_type)

Defines tables type, which is used in CREATE TABLE statements Now is only used for MySQL database, where following types are supported: "BDB", "HEAP", "ISAM", "InnoDB", "MERGE", "MRG_MYISAM", "MYISAM" Default for TSQLFile is "InnoDB".

For more detailes see MySQL docs.

Definition at line 527 of file TSQLFile.cxx.

◆ SetTitle()

void TNamed::SetTitle ( const char * title = "")
virtualinherited

◆ SetTRefAction()

void TDirectoryFile::SetTRefAction ( TObject * ref,
TObject * parent )
overridevirtualinherited

Reimplemented from TDirectory.

◆ SetUniqueID()

void TObject::SetUniqueID ( UInt_t uid)
virtualinherited

Set the unique object id.

Definition at line 899 of file TObject.cxx.

◆ SetUseIndexes()

void TSQLFile::SetUseIndexes ( Int_t use_type = kIndexesBasic)

Specify usage of indexes for data tables.

Index Description
kIndexesNone = 0 no indexes are used
kIndexesBasic = 1 indexes used only for keys list and objects list tables (default)
kIndexesClass = 2 index also created for every normal class table
kIndexesAll = 3 index created for every table, including streamer tables

Indexes in general should increase speed of access to objects data, but they required more operations and more disk space on server side

Definition at line 614 of file TSQLFile.cxx.

◆ SetUseSuffixes()

void TSQLFile::SetUseSuffixes ( Bool_t on = kTRUE)

enable/disable uasge of suffixes in columns names can be changed before first object is saved into file

Definition at line 497 of file TSQLFile.cxx.

◆ SetUseTransactions()

void TSQLFile::SetUseTransactions ( Int_t mode = kTransactionsAuto)

Defines usage of transactions statements for writing objects data to database.

| Index | Description | |----—|----------—| | kTransactionsOff=0 - no transaction operation are allowed | | kTransactionsAuto=1 - automatic mode. Each write operation, produced by TSQLFile, will be supplied by START TRANSACTION and COMMIT calls. If any error happen, ROLLBACK will returns database to previous state | | kTransactionsUser=2 - transactions are delegated to user. Methods StartTransaction(), Commit() and Rollback() should be called by user. |

Default UseTransactions option is kTransactionsAuto

Definition at line 547 of file TSQLFile.cxx.

◆ SetWritable()

void TDirectoryFile::SetWritable ( Bool_t writable = kTRUE)
overridevirtualinherited

Reimplemented from TDirectory.

◆ ShowStreamerInfo()

void TFile::ShowStreamerInfo ( )
virtualinherited

Show the StreamerInfo of all classes written to this file.

Definition at line 3448 of file TFile.cxx.

◆ ShrinkCacheFileDir()

Bool_t TFile::ShrinkCacheFileDir ( Long64_t shrinksize,
Long_t cleanupinterval = 0 )
staticinherited

Try to shrink the cache to the desired size.

With the clenupinterval you can specify the minimum amount of time after the previous cleanup before the cleanup operation is repeated in the cache directory

Definition at line 4368 of file TFile.cxx.

◆ Sizeof()

Int_t TSQLFile::Sizeof ( ) const
inlinefinalvirtual

Return the size in bytes of the file header.

Reimplemented from TFile.

Definition at line 245 of file TSQLFile.h.

◆ SkipArrayLimit()

void TSQLFile::SkipArrayLimit ( )
inline

Definition at line 188 of file TSQLFile.h.

◆ SQLApplyCommands()

Bool_t TSQLFile::SQLApplyCommands ( TObjArray * cmds)
protected

supplies set of commands to server Commands is stored as array of TObjString

Definition at line 1472 of file TSQLFile.cxx.

◆ SQLBigTextType()

const char * TSQLFile::SQLBigTextType ( ) const
inlineprotected

Definition at line 134 of file TSQLFile.h.

◆ SQLCanStatement()

Bool_t TSQLFile::SQLCanStatement ( )
protected

Test if DB support statement and number of open statements is not exceeded.

Definition at line 1424 of file TSQLFile.cxx.

◆ SQLCommit()

Bool_t TSQLFile::SQLCommit ( )
protected

Commit SQL transaction.

Definition at line 1580 of file TSQLFile.cxx.

◆ SQLCompatibleType()

const char * TSQLFile::SQLCompatibleType ( Int_t typ) const
protected

Returns sql type name which is most closer to ROOT basic type.

typ should be from TVirtualStreamerInfo:: constansts like TVirtualStreamerInfo::kInt

Definition at line 2565 of file TSQLFile.cxx.

◆ SQLDatetimeType()

const char * TSQLFile::SQLDatetimeType ( ) const
inlineprotected

Definition at line 135 of file TSQLFile.h.

◆ SQLDefaultTableType()

const char * TSQLFile::SQLDefaultTableType ( ) const
inlineprotected

Definition at line 144 of file TSQLFile.h.

◆ SQLDeleteAllTables()

void TSQLFile::SQLDeleteAllTables ( )
protected

Delete all tables in database.

Definition at line 1548 of file TSQLFile.cxx.

◆ SQLDeleteStatement()

void TSQLFile::SQLDeleteStatement ( TSQLStatement * stmt)
protected

delete statement and decrease counter

Definition at line 1458 of file TSQLFile.cxx.

◆ SQLDirIdColumn()

const char * TSQLFile::SQLDirIdColumn ( ) const
inlineprotected

Definition at line 137 of file TSQLFile.h.

◆ SQLIdentifierQuote()

const char * TSQLFile::SQLIdentifierQuote ( ) const
inlineprotected

Definition at line 136 of file TSQLFile.h.

◆ SQLIntType()

const char * TSQLFile::SQLIntType ( ) const
protected

return SQL integer type

Definition at line 2573 of file TSQLFile.cxx.

◆ SQLKeyIdColumn()

const char * TSQLFile::SQLKeyIdColumn ( ) const
inlineprotected

Definition at line 138 of file TSQLFile.h.

◆ SQLMaxIdentifierLength()

Int_t TSQLFile::SQLMaxIdentifierLength ( )
protected

returns maximum allowed length of identifiers

Definition at line 1596 of file TSQLFile.cxx.

◆ SQLMaximumValue()

Long64_t TSQLFile::SQLMaximumValue ( const char * tablename,
const char * columnname )
protected

Returns maximum value, found in specified columnname of table tablename Column type should be numeric.

Definition at line 1512 of file TSQLFile.cxx.

◆ SQLNameSeparator()

const char * TSQLFile::SQLNameSeparator ( ) const
inlineprotected

Definition at line 142 of file TSQLFile.h.

◆ SQLObjectIdColumn()

const char * TSQLFile::SQLObjectIdColumn ( ) const
inlineprotected

Definition at line 139 of file TSQLFile.h.

◆ SQLObjectInfo()

Bool_t TSQLFile::SQLObjectInfo ( Long64_t objid,
TString & clname,
Version_t & version )
protected

Read from objects table data for specified objectid.

Definition at line 2343 of file TSQLFile.cxx.

◆ SQLObjectsInfo()

TObjArray * TSQLFile::SQLObjectsInfo ( Long64_t keyid)
protected

Produce array of TSQLObjectInfo objects for all objects, belong to that key Array should be deleted by calling function afterwards.

Definition at line 2370 of file TSQLFile.cxx.

◆ SQLQuery()

TSQLResult * TSQLFile::SQLQuery ( const char * cmd,
Int_t flag = 0,
Bool_t * ok = nullptr )
protected

Submits query to SQL server.

Flag Value Effect
0 result is not interesting and will be deleted
1 return result of submitted query
2 results is may be necessary for long time Oracle plugin do not support working with several TSQLResult

objects, therefore explicit deep copy will be produced|

If ok!=0, it will contains kTRUE is Query was successful, otherwise kFALSE

Definition at line 1388 of file TSQLFile.cxx.

◆ SQLRawIdColumn()

const char * TSQLFile::SQLRawIdColumn ( ) const
inlineprotected

Definition at line 140 of file TSQLFile.h.

◆ SQLRollback()

Bool_t TSQLFile::SQLRollback ( )
protected

Rollback all SQL operations, done after start transaction.

Definition at line 1588 of file TSQLFile.cxx.

◆ SQLSmallTextType()

const char * TSQLFile::SQLSmallTextType ( ) const
inlineprotected

Definition at line 132 of file TSQLFile.h.

◆ SQLSmallTextTypeLimit()

Int_t TSQLFile::SQLSmallTextTypeLimit ( ) const
inlineprotected

Definition at line 133 of file TSQLFile.h.

◆ SQLStartTransaction()

Bool_t TSQLFile::SQLStartTransaction ( )
protected

Start SQL transaction.

Definition at line 1572 of file TSQLFile.cxx.

◆ SQLStatement()

TSQLStatement * TSQLFile::SQLStatement ( const char * cmd,
Int_t bufsize = 1000 )
protected

Produces SQL statement for currently conected DB server.

Definition at line 1438 of file TSQLFile.cxx.

◆ SQLStrIdColumn()

const char * TSQLFile::SQLStrIdColumn ( ) const
inlineprotected

Definition at line 141 of file TSQLFile.h.

◆ SQLTestTable()

Bool_t TSQLFile::SQLTestTable ( const char * tablename)
protected

Test, if table of specified name exists.

Definition at line 1492 of file TSQLFile.cxx.

◆ SQLValueQuote()

const char * TSQLFile::SQLValueQuote ( ) const
inlineprotected

Definition at line 143 of file TSQLFile.h.

◆ StartLogFile()

void TSQLFile::StartLogFile ( const char * fname)

start logging of all SQL statements in specified file

Definition at line 446 of file TSQLFile.cxx.

◆ StartTransaction()

Bool_t TSQLFile::StartTransaction ( )

Start user transaction.

This can be usesful, when big number of objects should be stored in data base and commitment required only if all operations were successful. In that case in the end of all operations method Commit() should be called. If operation on user-level is looks like not successful, method Rollback() will return database data and TSQLFile instance to previous state. In MySQL not all tables types support transaction mode of operation. See SetTablesType() method for details .

Definition at line 564 of file TSQLFile.cxx.

◆ StopLogFile()

void TSQLFile::StopLogFile ( )

close logging file

Definition at line 455 of file TSQLFile.cxx.

◆ StoreObjectInTables()

Long64_t TSQLFile::StoreObjectInTables ( Long64_t keyid,
const void * obj,
const TClass * cl )
protected

Store object in database. Return stored object id or -1 if error.

Definition at line 2510 of file TSQLFile.cxx.

◆ Streamer()

void TSQLFile::Streamer ( TBuffer & b)
overridevirtual

Streamer for TSQLFile class.

Stores only data for TDirectory.

Reimplemented from TFile.

Definition at line 2667 of file TSQLFile.cxx.

◆ StreamerNVirtual()

void TSQLFile::StreamerNVirtual ( TBuffer & ClassDef_StreamerNVirtual_b)
inline

Definition at line 254 of file TSQLFile.h.

◆ StreamKeysForDirectory()

Int_t TSQLFile::StreamKeysForDirectory ( TDirectory * dir,
Bool_t doupdate,
Long64_t specialkeyid = -1,
TKeySQL ** specialkey = nullptr )
protected

read keys for specified directory (when update == kFALSE) or update value for modified keys when update == kTRUE Returns number of successfully read keys or -1 if error

Definition at line 919 of file TSQLFile.cxx.

◆ SumBuffer()

void TFile::SumBuffer ( Int_t bufsize)
inherited

Increment statistics for buffer sizes of objects in this file.

Definition at line 2469 of file TFile.cxx.

◆ SysClose()

Int_t TSQLFile::SysClose ( Int_t fd)
inlinefinalprotectedvirtual

Interface to system close. All arguments like in POSIX close().

Reimplemented from TFile.

Definition at line 45 of file TSQLFile.h.

◆ SysError()

void TObject::SysError ( const char * location,
const char * fmt,
... ) const
virtualinherited

Issue system error message.

Use "location" to specify the method where the system error occurred. Accepts standard printf formatting arguments.

Definition at line 1112 of file TObject.cxx.

◆ SysOpen()

Int_t TSQLFile::SysOpen ( const char * pathname,
Int_t flags,
UInt_t mode )
inlinefinalprotectedvirtual

Interface to system open. All arguments like in POSIX open().

Reimplemented from TFile.

Definition at line 44 of file TSQLFile.h.

◆ SysRead()

Int_t TSQLFile::SysRead ( Int_t fd,
void * buf,
Int_t len )
inlinefinalprotectedvirtual

Interface to system read. All arguments like in POSIX read().

Reimplemented from TFile.

Definition at line 46 of file TSQLFile.h.

◆ SysSeek()

Long64_t TSQLFile::SysSeek ( Int_t fd,
Long64_t offset,
Int_t whence )
inlinefinalprotectedvirtual

Interface to system lseek.

All arguments like in POSIX lseek() except that the offset and return value are of a type which are able to handle 64 bit file systems.

Reimplemented from TFile.

Definition at line 48 of file TSQLFile.h.

◆ SysStat()

Int_t TSQLFile::SysStat ( Int_t fd,
Long_t * id,
Long64_t * size,
Long_t * flags,
Long_t * modtime )
inlinefinalprotectedvirtual

Return file stat information.

The interface and return value is identical to TSystem::GetPathInfo(). The function returns 0 in case of success and 1 if the file could not be stat'ed.

Reimplemented from TFile.

Definition at line 49 of file TSQLFile.h.

◆ SysSync()

Int_t TSQLFile::SysSync ( Int_t fd)
inlinefinalprotectedvirtual

Interface to system fsync. All arguments like in POSIX fsync().

Reimplemented from TFile.

Definition at line 50 of file TSQLFile.h.

◆ SysWrite()

Int_t TSQLFile::SysWrite ( Int_t fd,
const void * buf,
Int_t len )
inlinefinalprotectedvirtual

Interface to system write. All arguments like in POSIX write().

Reimplemented from TFile.

Definition at line 47 of file TSQLFile.h.

◆ TestBit()

Bool_t TObject::TestBit ( UInt_t f) const
inlineinherited

Definition at line 204 of file TObject.h.

◆ TestBits()

Int_t TObject::TestBits ( UInt_t f) const
inlineinherited

Definition at line 205 of file TObject.h.

◆ UnregisterContext()

void TDirectory::UnregisterContext ( TContext * ctxt)
protectedinherited

UnRegister a TContext pointing to this TDirectory object.

Definition at line 1444 of file TDirectory.cxx.

◆ UpdateKeyData()

Bool_t TSQLFile::UpdateKeyData ( TKeySQL * key)
protected

Updates (overwrites) key data in KeysTable.

Definition at line 1721 of file TSQLFile.cxx.

◆ UseCurrentStyle()

void TObject::UseCurrentStyle ( )
virtualinherited

Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked.

Reimplemented in TAxis3D, TCanvas, TFrame, TGraph, TH1, TPad, TPaveStats, TPaveText, and TTree.

Definition at line 909 of file TObject.cxx.

◆ VerifyLongStringTable()

Bool_t TSQLFile::VerifyLongStringTable ( )
protected

Checks that table for big strings is exists If not, will be created.

Definition at line 2186 of file TSQLFile.cxx.

◆ VerifyObjectTable()

Long64_t TSQLFile::VerifyObjectTable ( )
protected

Checks that objects table is exists If not, table will be created Returns maximum value for existing objects id.

Definition at line 2304 of file TSQLFile.cxx.

◆ WalkTKeys()

ROOT::Detail::TKeyMapIterable TFile::WalkTKeys ( )
inherited

Traverses all TKeys in the TFile and returns information about them.

Definition at line 1639 of file TFile.cxx.

◆ Warning()

void TObject::Warning ( const char * location,
const char * fmt,
... ) const
virtualinherited

Issue warning message.

Use "location" to specify the method where the warning occurred. Accepts standard printf formatting arguments.

Definition at line 1084 of file TObject.cxx.

◆ Write() [1/2]

Int_t TSQLFile::Write ( const char * name = nullptr,
Int_t opt = 0,
Int_t bufsize = 0 ) const
inlinefinalvirtual

One can not save a const TDirectory object.

Reimplemented from TFile.

Definition at line 249 of file TSQLFile.h.

◆ Write() [2/2]

Int_t TSQLFile::Write ( const char * name = nullptr,
Int_t opt = 0,
Int_t bufsize = 0 )
inlinefinalvirtual

Write memory objects to this file.

Loop on all objects in memory (including subdirectories). A new key is created in the KEYS linked list for each object. The list of keys is then saved on the file (via WriteKeys) as a single data record. For values of opt see TObject::Write(). The directory header info is rewritten on the directory header record. The linked list of FREE segments is written. The file header is written (bytes 1->fBEGIN).

Reimplemented from TFile.

Definition at line 248 of file TSQLFile.h.

◆ WriteBuffer()

Bool_t TSQLFile::WriteBuffer ( const char * buf,
Int_t len )
inlinefinalvirtual

Write a buffer to the file.

This is the basic low level write operation. Returns kTRUE in case of failure.

Reimplemented from TFile.

Definition at line 247 of file TSQLFile.h.

◆ WriteBufferViaCache()

Int_t TFile::WriteBufferViaCache ( const char * buf,
Int_t len )
protectedinherited

Write buffer via cache.

Returns 0 if cache is not active, 1 in case write via cache was successful, 2 in case write via cache failed.

Definition at line 2571 of file TFile.cxx.

◆ WriteDirHeader()

void TDirectoryFile::WriteDirHeader ( )
overridevirtualinherited

Reimplemented from TDirectory.

◆ WriteFree()

void TSQLFile::WriteFree ( )
inlinefinalvirtual

Write FREE linked list on the file.

The linked list of FREE segments (fFree) is written as a single data record.

Reimplemented from TFile.

Definition at line 250 of file TSQLFile.h.

◆ WriteHeader()

void TSQLFile::WriteHeader ( )
finalvirtual

Write file info like configurations, title, UUID and other.

Reimplemented from TFile.

Definition at line 781 of file TSQLFile.cxx.

◆ WriteKeyData()

Bool_t TSQLFile::WriteKeyData ( TKeySQL * key)
protected

Add entry into keys table.

Definition at line 1690 of file TSQLFile.cxx.

◆ WriteKeys()

void TDirectoryFile::WriteKeys ( )
overridevirtualinherited

Reimplemented from TDirectory.

◆ WriteObject() [1/2]

template<typename T>
std::enable_if_t< std::is_base_of< TObject, T >::value, Int_t > TDirectory::WriteObject ( const T * obj,
const char * name,
Option_t * option = "",
Int_t bufsize = 0 )
inlineinherited

Write an object with proper type checking.

Parameters
[in]objPointer to an object to be written.
[in]nameName of the object in the file.
[in]optionOptions. See TDirectoryFile::WriteTObject.
[in]bufsizeBuffer size. See TDirectoryFile::WriteTObject.

This overload takes care of instances of classes that are derived from TObject. The method redirects to TDirectory::WriteTObject.

Definition at line 297 of file TDirectory.h.

◆ WriteObject() [2/2]

template<typename T>
std::enable_if_t<!std::is_base_of< TObject, T >::value, Int_t > TDirectory::WriteObject ( const T * obj,
const char * name,
Option_t * option = "",
Int_t bufsize = 0 )
inlineinherited

Write an object with proper type checking.

Parameters
[in]objPointer to an object to be written.
[in]nameName of the object in the file.
[in]optionOptions. See TDirectoryFile::WriteTObject.
[in]bufsizeBuffer size. See TDirectoryFile::WriteTObject.

This overload takes care of instances of classes that are not derived from TObject. The method redirects to TDirectory::WriteObjectAny.

Definition at line 283 of file TDirectory.h.

◆ WriteObjectAny() [1/2]

Int_t TDirectoryFile::WriteObjectAny ( const void * obj,
const char * classname,
const char * name,
Option_t * option = "",
Int_t bufsize = 0 )
overridevirtualinherited

Reimplemented from TDirectory.

◆ WriteObjectAny() [2/2]

Int_t TDirectoryFile::WriteObjectAny ( const void * obj,
const TClass * cl,
const char * name,
Option_t * option = "",
Int_t bufsize = 0 )
overridevirtualinherited

Reimplemented from TDirectory.

◆ WriteProcessID()

UShort_t TFile::WriteProcessID ( TProcessID * pid)
virtualinherited

Check if the ProcessID pidd is already in the file, if not, add it and return the index number in the local file list.

Definition at line 3461 of file TFile.cxx.

◆ WriteSpecialObject()

Bool_t TSQLFile::WriteSpecialObject ( Long64_t keyid,
TObject * obj,
const char * name,
const char * title )
protected

write special kind of object like streamer infos or file itself keys for that objects should exist in tables but not indicated in list of keys, therefore users can not get them with TDirectoryFile::Get() method

Definition at line 828 of file TSQLFile.cxx.

◆ WriteStreamerInfo()

void TSQLFile::WriteStreamerInfo ( )
finalvirtual

Store all TVirtualStreamerInfo, used in file, in sql database.

Reimplemented from TFile.

Definition at line 789 of file TSQLFile.cxx.

◆ WriteTObject()

Int_t TDirectoryFile::WriteTObject ( const TObject * obj,
const char * name = nullptr,
Option_t * option = "",
Int_t bufsize = 0 )
overridevirtualinherited

Reimplemented from TDirectory.

◆ TBufferSQL2

friend class TBufferSQL2
friend

Definition at line 32 of file TSQLFile.h.

◆ TKeySQL

friend class TKeySQL
friend

Definition at line 33 of file TSQLFile.h.

◆ TSqlCmdsBuffer

friend class TSqlCmdsBuffer
friend

Definition at line 38 of file TSQLFile.h.

◆ TSqlRawBuffer

friend class TSqlRawBuffer
friend

Definition at line 37 of file TSQLFile.h.

◆ TSqlRegistry

friend class TSqlRegistry
friend

Definition at line 36 of file TSQLFile.h.

◆ TSQLStructure

friend class TSQLStructure
friend

Definition at line 34 of file TSQLFile.h.

◆ TSQLTableData

friend class TSQLTableData
friend

Definition at line 35 of file TSQLFile.h.

Member Data Documentation

◆ fArchive

TArchiveFile* TFile::fArchive {nullptr}
protectedinherited

!Archive file from which we read this file

Definition at line 175 of file TFile.h.

◆ fArchiveOffset

Long64_t TFile::fArchiveOffset {0}
protectedinherited

!Offset at which file starts in archive

Definition at line 179 of file TFile.h.

◆ fArrayLimit

Int_t TSQLFile::fArrayLimit
protected

! limit for array size. when array bigger, its content converted to raw format

Definition at line 152 of file TSQLFile.h.

◆ fAsyncHandle

TFileOpenHandle* TFile::fAsyncHandle {nullptr}
protectedinherited

!For proper automatic cleanup

Definition at line 186 of file TFile.h.

◆ fAsyncOpenStatus

EAsyncOpenStatus TFile::fAsyncOpenStatus {kAOSNotAsync}
protectedinherited

!Status of an asynchronous open request

Definition at line 187 of file TFile.h.

◆ fBasicTypes

const char** TSQLFile::fBasicTypes
protected

! pointer on list of basic types specific for currently connected SQL server

Definition at line 160 of file TSQLFile.h.

◆ fBEGIN

Long64_t TFile::fBEGIN {0}
protectedinherited

First used byte in file.

Definition at line 156 of file TFile.h.

◆ fBits

UInt_t TObject::fBits
privateinherited

bit field status word

Definition at line 47 of file TObject.h.

◆ fBufferSize

Int_t TDirectoryFile::fBufferSize {0}
protectedinherited

Default buffer size to create new TKeys.

Definition at line 41 of file TDirectoryFile.h.

◆ fBytesRead

Long64_t TFile::fBytesRead {0}
protectedinherited

Number of bytes read from this file.

Definition at line 154 of file TFile.h.

◆ fBytesReadExtra

Long64_t TFile::fBytesReadExtra {0}
protectedinherited

Number of extra bytes (overhead) read by the readahead buffer.

Definition at line 155 of file TFile.h.

◆ fBytesWrite

Long64_t TFile::fBytesWrite {0}
protectedinherited

Number of bytes written to this file.

Definition at line 153 of file TFile.h.

◆ fCacheRead

TFileCacheRead* TFile::fCacheRead {nullptr}
protectedinherited

!Pointer to the read cache (if any)

Definition at line 176 of file TFile.h.

◆ fCacheReadMap

TMap* TFile::fCacheReadMap {nullptr}
protectedinherited

!Pointer to the read cache (if any)

Definition at line 177 of file TFile.h.

◆ fCacheWrite

TFileCacheWrite* TFile::fCacheWrite {nullptr}
protectedinherited

!Pointer to the write cache (if any)

Definition at line 178 of file TFile.h.

◆ fCanChangeConfig

Bool_t TSQLFile::fCanChangeConfig
protected

! variable indicates can be basic configuration changed or not

Definition at line 153 of file TSQLFile.h.

◆ fClassIndex

TArrayC* TFile::fClassIndex {nullptr}
protectedinherited

!Index of TStreamerInfo classes written to this file

Definition at line 172 of file TFile.h.

◆ fCompress

Int_t TFile::fCompress {0}
protectedinherited

Compression level and algorithm.

Definition at line 162 of file TFile.h.

◆ fContext

TContext* TDirectory::fContext {nullptr}
protectedinherited

! Pointer to a list of TContext object pointing to this TDirectory

Definition at line 145 of file TDirectory.h.

◆ fContextPeg

std::atomic<size_t> TDirectory::fContextPeg {0}
protectedinherited

! Counter delaying the TDirectory destructor from finishing.

Definition at line 153 of file TDirectory.h.

◆ fD

Int_t TFile::fD {-1}
protectedinherited

File descriptor.

Definition at line 160 of file TFile.h.

◆ fDatimeC

TDatime TDirectoryFile::fDatimeC
protectedinherited

Date and time when directory is created.

Definition at line 37 of file TDirectoryFile.h.

◆ fDatimeM

TDatime TDirectoryFile::fDatimeM
protectedinherited

Date and time of last modification.

Definition at line 38 of file TDirectoryFile.h.

◆ fEND

Long64_t TFile::fEND {0}
protectedinherited

Last used byte in file.

Definition at line 157 of file TFile.h.

◆ fFile

TFile* TDirectoryFile::fFile {nullptr}
protectedinherited

Pointer to current file in memory.

Definition at line 45 of file TDirectoryFile.h.

◆ fFree

TList* TFile::fFree {nullptr}
protectedinherited

Free segments linked list table.

Definition at line 171 of file TFile.h.

◆ fgAddDirectory

Bool_t TDirectory::fgAddDirectory = false
inlinestaticprotectedinherited

!

Deprecated
This flag has no effect in ROOT.

Definition at line 157 of file TDirectory.h.

◆ fgAsyncOpenRequests

TList * TFile::fgAsyncOpenRequests = nullptr
staticprotectedinherited

Definition at line 200 of file TFile.h.

◆ fgBytesRead

std::atomic< Long64_t > TFile::fgBytesRead {0}
staticprotectedinherited

Number of bytes read by all TFile objects.

Definition at line 182 of file TFile.h.

◆ fgBytesWrite

std::atomic< Long64_t > TFile::fgBytesWrite {0}
staticprotectedinherited

Number of bytes written by all TFile objects.

Definition at line 183 of file TFile.h.

◆ fgCacheFileDir

TString TFile::fgCacheFileDir
staticprotectedinherited

Directory where to locally stage files.

Definition at line 202 of file TFile.h.

◆ fgCacheFileDisconnected

Bool_t TFile::fgCacheFileDisconnected = kTRUE
staticprotectedinherited

Indicates, we trust in the files in the cache dir without stat on the cached file.

Definition at line 203 of file TFile.h.

◆ fgCacheFileForce

Bool_t TFile::fgCacheFileForce = kFALSE
staticprotectedinherited

Indicates, to force all READ to CACHEREAD.

Definition at line 204 of file TFile.h.

◆ fGDirectories

std::vector<SharedGDirectory_t> TDirectory::fGDirectories
protectedinherited

! thread local gDirectory pointing to this object.

Definition at line 151 of file TDirectory.h.

◆ fgDtorOnly

Longptr_t TObject::fgDtorOnly = 0
staticprivateinherited

object for which to call dtor only (i.e. no delete)

Definition at line 49 of file TObject.h.

◆ fgFileCounter

std::atomic< Long64_t > TFile::fgFileCounter {0}
staticprotectedinherited

Counter for all opened files.

Definition at line 184 of file TFile.h.

◆ fGlobalRegistration

bool TFile::fGlobalRegistration = true
protectedinherited

! if true, bypass use of global lists

Definition at line 193 of file TFile.h.

◆ fgObjectStat

Bool_t TObject::fgObjectStat = kTRUE
staticprivateinherited

if true keep track of objects in TObjectTable

Definition at line 50 of file TObject.h.

◆ fgOnlyStaged

Bool_t TFile::fgOnlyStaged = kFALSE
staticprotectedinherited

Before the file is opened, it is checked, that the file is staged, if not, the open fails.

Definition at line 206 of file TFile.h.

◆ fgOpenTimeout

UInt_t TFile::fgOpenTimeout = TFile::kEternalTimeout
staticprotectedinherited

Timeout for open operations in ms - 0 corresponds to blocking i/o.

Definition at line 205 of file TFile.h.

◆ fgReadaheadSize

Int_t TFile::fgReadaheadSize = 256000
staticprotectedinherited

Readahead buffer size.

Definition at line 212 of file TFile.h.

◆ fgReadCalls

std::atomic< Int_t > TFile::fgReadCalls {0}
staticprotectedinherited

Number of bytes read from all TFile objects.

Definition at line 185 of file TFile.h.

◆ fgReadInfo

Bool_t TFile::fgReadInfo = kTRUE
staticprotectedinherited

if true (default) ReadStreamerInfo is called when opening a file

Definition at line 213 of file TFile.h.

◆ fgTsSIHashes

ROOT::Internal::RConcurrentHashColl TFile::fgTsSIHashes
staticprotectedinherited

!TS Set of hashes built from read streamer infos

Definition at line 198 of file TFile.h.

◆ fIdsTableExists

Bool_t TSQLFile::fIdsTableExists
protected

! indicate if IdsTable exists

Definition at line 167 of file TSQLFile.h.

◆ fInfoCache

TList* TFile::fInfoCache {nullptr}
protectedinherited

!Cached list of the streamer infos in this file

Definition at line 190 of file TFile.h.

◆ fInitDone

Bool_t TFile::fInitDone {kFALSE}
protectedinherited

!True if the file has been initialized

Definition at line 183 of file TFile.h.

◆ fIsArchive

Bool_t TFile::fIsArchive {kFALSE}
protectedinherited

!True if this is a pure archive file

Definition at line 180 of file TFile.h.

◆ fIsPcmFile

Bool_t TFile::fIsPcmFile {kFALSE}
protectedinherited

!True if the file is a ROOT pcm file.

Definition at line 185 of file TFile.h.

◆ fIsRootFile

Bool_t TFile::fIsRootFile {kTRUE}
protectedinherited

!True is this is a ROOT file, raw file otherwise

Definition at line 182 of file TFile.h.

◆ fKeys

TList* TDirectoryFile::fKeys {nullptr}
protectedinherited

Pointer to keys list in memory.

Definition at line 46 of file TDirectoryFile.h.

◆ fList

TList* TDirectory::fList {nullptr}
protectedinherited

List of objects in memory.

Definition at line 142 of file TDirectory.h.

◆ fLogFile

std::ofstream* TSQLFile::fLogFile
protected

! log file with SQL statements

Definition at line 165 of file TSQLFile.h.

◆ fModified

Bool_t TDirectoryFile::fModified {kFALSE}
protectedinherited

True if directory has been modified.

Definition at line 35 of file TDirectoryFile.h.

◆ fModifyCounter

Int_t TSQLFile::fModifyCounter
protected

! indicates how many changes was done with database tables

Definition at line 157 of file TSQLFile.h.

◆ fMother

TObject* TDirectory::fMother {nullptr}
protectedinherited

pointer to mother of the directory

Definition at line 141 of file TDirectory.h.

◆ fMustFlush

Bool_t TFile::fMustFlush {kTRUE}
protectedinherited

!True if the file buffers must be flushed

Definition at line 184 of file TFile.h.

◆ fName

TString TNamed::fName
protectedinherited

Definition at line 32 of file TNamed.h.

◆ fNbytesFree

Int_t TFile::fNbytesFree {0}
protectedinherited

Number of bytes for free segments structure.

Definition at line 163 of file TFile.h.

◆ fNbytesInfo

Int_t TFile::fNbytesInfo {0}
protectedinherited

Number of bytes for StreamerInfo record.

Definition at line 164 of file TFile.h.

◆ fNbytesKeys

Int_t TDirectoryFile::fNbytesKeys {0}
protectedinherited

Number of bytes for the keys.

Definition at line 39 of file TDirectoryFile.h.

◆ fNbytesName

Int_t TDirectoryFile::fNbytesName {0}
protectedinherited

Number of bytes in TNamed at creation time.

Definition at line 40 of file TDirectoryFile.h.

◆ fNoAnchorInName

Bool_t TFile::fNoAnchorInName {kFALSE}
protectedinherited

!True if we don't want to force the anchor to be appended to the file name

Definition at line 181 of file TFile.h.

◆ fNProcessIDs

Int_t TFile::fNProcessIDs {0}
protectedinherited

Number of TProcessID written to this file.

Definition at line 166 of file TFile.h.

◆ fOffset

Long64_t TFile::fOffset {0}
protectedinherited

!Seek offset cache

Definition at line 174 of file TFile.h.

◆ fOpenPhases

TList* TFile::fOpenPhases {nullptr}
protectedinherited

!Time info about open phases

Definition at line 191 of file TFile.h.

◆ fOption

TString TFile::fOption
protectedinherited

File options.

Definition at line 169 of file TFile.h.

◆ fOtherTypes

const char** TSQLFile::fOtherTypes
protected

! pointer on list of other SQL types like TEXT or blob

Definition at line 161 of file TSQLFile.h.

◆ fPathBuffer

TString TDirectory::fPathBuffer
mutableprotectedinherited

! Buffer for GetPath() function

Definition at line 144 of file TDirectory.h.

◆ fProcessIDs

TObjArray* TFile::fProcessIDs {nullptr}
protectedinherited

!Array of pointers to TProcessIDs

Definition at line 173 of file TFile.h.

◆ fQuerisCounter

Int_t TSQLFile::fQuerisCounter
protected

! how many query was applied

Definition at line 158 of file TSQLFile.h.

◆ fReadCalls

Int_t TFile::fReadCalls {0}
protectedinherited

Number of read calls ( not counting the cache calls ).

Definition at line 167 of file TFile.h.

◆ fRealName

TString TFile::fRealName
protectedinherited

Effective real file name (not original url).

Definition at line 168 of file TFile.h.

◆ fSeekDir

Long64_t TDirectoryFile::fSeekDir {0}
protectedinherited

Location of directory on file.

Definition at line 42 of file TDirectoryFile.h.

◆ fSeekFree

Long64_t TFile::fSeekFree {0}
protectedinherited

Location on disk of free segments structure.

Definition at line 158 of file TFile.h.

◆ fSeekInfo

Long64_t TFile::fSeekInfo {0}
protectedinherited

Location on disk of StreamerInfo record.

Definition at line 159 of file TFile.h.

◆ fSeekKeys

Long64_t TDirectoryFile::fSeekKeys {0}
protectedinherited

Location of Keys record on file.

Definition at line 44 of file TDirectoryFile.h.

◆ fSeekParent

Long64_t TDirectoryFile::fSeekParent {0}
protectedinherited

Location of parent directory on file.

Definition at line 43 of file TDirectoryFile.h.

◆ fSpinLock

std::atomic_flag TDirectory::fSpinLock
mutableprotectedinherited

! MSVC doesn't support = ATOMIC_FLAG_INIT;

Definition at line 154 of file TDirectory.h.

◆ fSQL

TSQLServer* TSQLFile::fSQL
protected

! interface to SQL database

Definition at line 146 of file TSQLFile.h.

◆ fSQLClassInfos

TList* TSQLFile::fSQLClassInfos
protected

! list of SQL class infos

Definition at line 148 of file TSQLFile.h.

◆ fSQLIOversion

Int_t TSQLFile::fSQLIOversion
protected

! version of SQL I/O which is stored in configurations

Definition at line 151 of file TSQLFile.h.

◆ fStmtCounter

Int_t TSQLFile::fStmtCounter
protected

! count numbers of active statements

Definition at line 168 of file TSQLFile.h.

◆ fSum2Buffer

Double_t TFile::fSum2Buffer {0}
protectedinherited

Sum of squares of buffer sizes of objects written so far.

Definition at line 152 of file TFile.h.

◆ fSumBuffer

Double_t TFile::fSumBuffer {0}
protectedinherited

Sum of buffer sizes of objects written so far.

Definition at line 151 of file TFile.h.

◆ fTablesType

TString TSQLFile::fTablesType
protected

! type, used in CREATE TABLE statements

Definition at line 154 of file TSQLFile.h.

◆ fTitle

TString TNamed::fTitle
protectedinherited

Definition at line 33 of file TNamed.h.

◆ fUniqueID

UInt_t TObject::fUniqueID
privateinherited

object unique identifier

Definition at line 46 of file TObject.h.

◆ fUnits

Char_t TFile::fUnits {0}
protectedinherited

Number of bytes for file pointers.

Definition at line 170 of file TFile.h.

◆ fUrl

TUrl TFile::fUrl
protectedinherited

!URL of file

Definition at line 188 of file TFile.h.

◆ fUseIndexes

Int_t TSQLFile::fUseIndexes
protected

! use indexes for tables: 0 - off, 1 - only for basic tables, 2 + normal class tables, 3 - all tables

Definition at line 156 of file TSQLFile.h.

◆ fUserName

TString TSQLFile::fUserName
protected

! user name, used to access objects from database

Definition at line 163 of file TSQLFile.h.

◆ fUseSuffixes

Bool_t TSQLFile::fUseSuffixes
protected

! use suffixes in column names like fValue:Int_t or fObject:pointer

Definition at line 150 of file TSQLFile.h.

◆ fUseTransactions

Int_t TSQLFile::fUseTransactions
protected

! use transaction statements for writing data into the tables

Definition at line 155 of file TSQLFile.h.

◆ fUUID

TUUID TDirectory::fUUID {TUUID::UUIDv4()}
protectedinherited

Unique identifier.

Definition at line 143 of file TDirectory.h.

◆ fVersion

Int_t TFile::fVersion {0}
protectedinherited

File format version.

Definition at line 161 of file TFile.h.

◆ fWritable

Bool_t TDirectoryFile::fWritable {kFALSE}
protectedinherited

True if directory is writable.

Definition at line 36 of file TDirectoryFile.h.

◆ fWriteMutex

std::mutex TFile::fWriteMutex
protectedinherited

!Lock for writing baskets / keys into the file.

Definition at line 196 of file TFile.h.

◆ fWritten

Int_t TFile::fWritten {0}
protectedinherited

Number of objects written so far.

Definition at line 165 of file TFile.h.


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