1 #ifndef GAUDIROOT_ROOTDATACONNECTION_H     2 #define GAUDIROOT_ROOTDATACONNECTION_H    16 #include "TTreePerfStats.h"    73     static int compression();
    97     enum { ROOT_READ_ERROR = 0x2, ROOT_OPEN_ERROR = 0x4 };
   157     TTree* m_refs = 
nullptr;
   222       virtual ~
Tool() = 
default;
   253     bool isWritable()
 const { 
return m_file && m_file->IsWritable(); }
   259     const StringVec& 
mergeFIDs()
 const { 
return m_mergeFIDs; }
   264     size_t removeClient( 
const IInterface* client );
   266     bool lookupClient( 
const IInterface* client ) 
const;
   275     void enableStatistics( 
const std::string& section );
   277     void saveStatistics( 
const std::string& statisticsFile );
   287                                            DataObject* pObj, 
int buff_siz, 
int split_lvl, 
bool fill_missing = 
false );
   290                                         int buff_siz, 
int split_lvl, 
bool fill_missing = 
false );
   303     long long int seek( 
long long int, 
int )
 override { 
return -1; }
   306     TTree* getSection( 
const std::string& sect, 
bool create = 
false );
   311       return m_tool->getBranch( section, branch_name );
   314     TBranch* getBranch( 
const std::string& section, 
const std::string& branch_name, TClass* cl, 
void* ptr, 
int buff_siz,
   332       return ( which >= 0 ) && ( size_t( which ) < m_conts.
size() ) ? *( m_conts.
begin() + 
which ) : empty();
   338       return ( which >= 0 ) && ( size_t( which ) < m_links.
size() ) ? *( m_links.
begin() + 
which ) : empty();
   342 #endif // GAUDIROOT_ROOTDATACONNECTION_H 
MergeSections m_mergeSects
Database section map for merged files. 
Definition of the MsgStream class used to transmit messages. 
const MergeSections & mergeSections() const 
Access merged data section inventory. 
std::vector< ContainerSection > ContainerSections
Definition of container sections to handle merged files. 
std::unique_ptr< Tool > m_tool
std::string m_name
Connection name/identifier. 
IoType
I/O Connection types. 
TFile * file() const 
Direct access to TFile structure. 
bool isConnected() const  override
Check if connected to data source. 
std::map< std::string, ContainerSections > MergeSections
Definition of database section to handle merged files. 
long long int seek(long long int, int) override
Seek on the file described by ioDesc. Arguments as in ::seek() 
std::unique_ptr< TTreePerfStats > m_statistics
I/O read statistics from TTree. 
Clients m_clients
Client list. 
int length
The length of the section. 
int start
The start entry of the section. 
std::set< const IInterface * > Clients
Client set. 
MsgStream & msgSvc() const 
Retrieve message service. 
const std::string & getLink(int which) const 
Access link name from saved index. 
std::vector< std::string > StringVec
Type definition for string maps. 
int cacheSize
RootCnvSvc Property: Root data cache size. 
Persistent reference object containing all leafs and links corresponding to a Gaudi DataObject...
StringVec m_links
Map containing internal links names. 
ContainerSection()
Default constructor. 
ParamMap m_params
Parameter map for file parameters. 
std::string loadSection
RootCnvSvc Property: Root data cache size. 
TYPE * get() const 
Get interface pointer. 
StringVec m_mergeFIDs
Map containing merge FIDs. 
Persistent reference object. 
StatusCode write(const void *, int) override
Write root byte buffer to output stream. 
int learnEntries
RootCnvSvc Property: ROOT cache learn entries. 
This class is used for returning status codes from appropriate routines. 
std::unique_ptr< MsgStream > m_msgSvc
Reference to message service. 
Definition of the basic interface. 
TBranch * getBranch(const std::string §ion, const std::string &branch_name)
Access data branch by name: Get existing branch in read only mode. 
std::vector< std::pair< std::string, std::string > > ParamMap
Type definition for the parameter map. 
StringVec m_conts
Map containing external container names. 
Sections m_sections
Tree sections in TFile. 
StringVec cacheBranches
Vector of strings with branches to be cached for input files. 
std::vector< std::string > StringVec
Type definition for string maps. 
The IRegistry represents the entry door to the environment any data object residing in a transient da...
std::vector< RootRef > LinkSections
Link sections definition. 
const std::string & getCont(int which) const 
Access container name from saved index. 
Tool * tool() const 
Access tool. 
ContainerSection(int s, int l)
Initializing constructor. 
StringVec vetoBranches
Vector of strings with branches to NOT be cached for input files. 
const StringVec & mergeFIDs() const 
Access merged FIDs. 
ContainerSection & operator=(const ContainerSection &s)
Assignment operator to copy objects. 
bool isWritable() const 
Is the file writable? 
ABC describing basic data connection. 
IIncidentSvc * incidentSvc() const 
Retrieve incident service. 
std::shared_ptr< RootConnectionSetup > m_setup
Reference to the setup structure. 
LinkSections m_linkSects
Database link sections. 
MsgStream & msgSvc() const 
Allow access to printer service. 
ContainerSection(const ContainerSection &s)
Copy constructor. 
std::unique_ptr< TFile > m_file
Reference to ROOT file. 
StringVec m_dbs
Map containing external database file names (fids) 
std::string m_empty
Buffer for empty string reference. 
A DataObject is the base class of any identifiable object on any data store. 
Concrete implementation of the IDataConnection interface to access ROOT files. 
TTree * m_refs
Pointer to the reference tree. 
StatusCode read(void *const, size_t) override
Read root byte buffer from input stream. 
Helper functions to set/get the application return code. 
Internal helper class, which described a TBranch section in a ROOT file. 
The interface implemented by the IncidentSvc service. 
std::map< std::string, TTree * > Sections
Definition of tree sections.