1 #ifndef GAUDIROOT_ROOTDATACONNECTION_H 2 #define GAUDIROOT_ROOTDATACONNECTION_H 15 #include "TTreePerfStats.h" 69 static long setCompression(
const std::string& compression);
71 static int compression();
95 enum { ROOT_READ_ERROR = 0x2,
157 TTree *m_refs =
nullptr;
220 virtual ~
Tool() =
default;
251 bool isWritable()
const {
return m_file && m_file->IsWritable(); }
257 const StringVec&
mergeFIDs()
const {
return m_mergeFIDs; }
263 size_t removeClient(
const IInterface* client);
265 bool lookupClient(
const IInterface* client)
const;
276 void saveStatistics(
const std::string& statisticsFile);
301 long long int seek(
long long int,
int)
override {
return -1; }
304 TTree* getSection(
const std::string& sect,
bool create=
false);
308 {
return m_tool->getBranch(section,branch_name); }
310 TBranch* getBranch(
const std::string& section,
const std::string& branch_name, TClass* cl,
void* ptr,
int buff_siz,
int split_lvl);
325 {
return (which>=0)&&(size_t(which)<m_conts.
size()) ? *(m_conts.
begin()+
which) : empty(); }
329 {
return (which>=0)&&(size_t(which)<m_links.
size()) ? *(m_links.
begin()+
which) : empty(); }
332 #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.
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.
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.
std::vector< std::pair< std::string, std::string > > ParamMap
Type definition for the parameter map.
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::map< std::string, ContainerSections > MergeSections
Definition of database section to handle merged files.
std::unique_ptr< TFile > m_file
Reference to ROOT file.
StringVec m_dbs
Map containing external database file names (fids)
std::map< std::string, TTree * > Sections
Definition of tree sections.
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.