Go to the documentation of this file.
   11 #ifndef GAUDIROOT_ROOTDATACONNECTION_H 
   12 #define GAUDIROOT_ROOTDATACONNECTION_H 
   22 #include <string_view> 
   27 #include "TTreePerfStats.h" 
   80     static StatusCode setCompression( std::string_view compression );
 
   82     static int compression();
 
  164     TTree* m_refs = 
nullptr;
 
  216       TTree*             
refs()
 const { 
return c->m_refs; }
 
  230       virtual TBranch* 
getBranch( std::string_view section, std::string_view 
n ) = 0;
 
  239       virtual int loadRefs( std::string_view section, std::string_view cnt, 
unsigned long entry,
 
  257     bool isWritable()
 const { 
return m_file && m_file->IsWritable(); }
 
  268     size_t removeClient( 
const IInterface* client );
 
  270     bool lookupClient( 
const IInterface* client ) 
const;
 
  273     void badWriteError( std::string_view 
msg ) 
const;
 
  279     void enableStatistics( std::string_view section );
 
  281     void saveStatistics( std::string_view statisticsFile );
 
  284     int loadObj( std::string_view section, std::string_view cnt, 
unsigned long entry, 
DataObject*& pObj );
 
  287     int loadRefs( std::string_view section, std::string_view cnt, 
unsigned long entry, 
RootObjectRefs& refs );
 
  291                                            int buff_siz, 
int split_lvl, 
bool fill_missing = 
false );
 
  294                                         int buff_siz, 
int split_lvl, 
bool fill_missing = 
false );
 
  299     StatusCode connectWrite( IoType typ ) 
override;
 
  307     long long int seek( 
long long int, 
int )
 override { 
return -1; }
 
  310     TTree* getSection( std::string_view sect, 
bool create = 
false );
 
  313     TBranch* 
getBranch( std::string_view section, std::string_view branch_name ) {
 
  314       return m_tool->getBranch( section, branch_name );
 
  317     TBranch* getBranch( std::string_view section, std::string_view branch_name, TClass* cl, 
void* ptr, 
int buff_siz,
 
  323     void makeRef( std::string_view 
name, 
long clid, 
int tech, std::string_view db, std::string_view cnt, 
int entry,
 
  327     int makeLink( std::string_view p );
 
  346 #endif // GAUDIROOT_ROOTDATACONNECTION_H 
  
 
ContainerSection()
Default constructor.
const StringVec & mergeFIDs() const
Access merged FIDs.
bool isConnected() const override
Check if connected to data source.
int length
The length of the section.
Clients m_clients
Client list.
StringVec cacheBranches
Vector of strings with branches to be cached for input files.
std::map< std::string, TTree *, std::less<> > Sections
Definition of tree sections.
const std::string & getLink(int which) const
Access link name from saved index.
StatusCode read(void *const, size_t) override
Read root byte buffer from input stream.
std::unique_ptr< TFile > m_file
Reference to ROOT file.
bool isWritable() const
Is the file writable?
Tool * tool() const
Access tool.
ParamMap m_params
Parameter map for file parameters.
ContainerSection & operator=(const ContainerSection &s)
Assignment operator to copy objects.
unsigned long code_t
type of StatusCode value
MsgStream & msgSvc() const
Retrieve message service.
StringVec m_dbs
Map containing external database file names (fids)
StatusCode saveRefs()
Internal helper to save/update reference tables.
std::vector< std::string > StringVec
Type definition for string maps.
std::vector< std::pair< std::string, std::string > > ParamMap
Type definition for the parameter map.
LinkSections m_linkSects
Database link sections.
std::vector< ContainerSection > ContainerSections
Definition of container sections to handle merged files.
StringVec m_mergeFIDs
Map containing merge FIDs.
std::shared_ptr< RootConnectionSetup > m_setup
Reference to the setup structure.
MergeSections m_mergeSects
Database section map for merged files.
const std::string & getCont(int which) const
Access container name from saved index.
std::vector< RootRef > LinkSections
Link sections definition.
std::unique_ptr< MsgStream > m_msgSvc
Reference to message service.
std::unique_ptr< TTreePerfStats > m_statistics
I/O read statistics from TTree.
int start
The start entry of the section.
StatusCode write(const void *, int) override
Write root byte buffer to output stream.
TFile * file() const
Direct access to TFile structure.
std::unique_ptr< Tool > m_tool
StringVec m_conts
Map containing external container names.
Header file for std:chrono::duration-based Counters.
long long int seek(long long int, int) override
Seek on the file described by ioDesc. Arguments as in ::seek()
#define STATUSCODE_ENUM_DECL(ENUM)
Declare an enum to be used as StatusCode value.
TYPE * get() const
Get interface pointer.
ContainerSection(const ContainerSection &s)
Copy constructor.
RootConnectionSetup()=default
Standard constructor.
const MergeSections & mergeSections() const
Access merged data section inventory.
StringVec m_links
Map containing internal links names.
std::vector< std::string > StringVec
Type definition for string maps.
std::map< std::string, ContainerSections, std::less<> > MergeSections
Definition of database section to handle merged files.
constexpr static const auto FAILURE
IIncidentSvc * incidentSvc() const
Retrieve incident service.
std::string loadSection
RootCnvSvc Property: Root data cache size.
ContainerSection(int s, int l)
Initializing constructor.
Sections m_sections
Tree sections in TFile.
TBranch * getBranch(std::string_view section, std::string_view branch_name)
Access data branch by name: Get existing branch in read only mode.
std::set< const IInterface * > Clients
Client set.
MsgStream & msgSvc() const
Allow access to printer service.
StringVec vetoBranches
Vector of strings with branches to NOT be cached for input files.
std::string m_empty
Buffer for empty string reference.