2 #ifndef GAUDIROOT_ROOTDATACONNECTION_H
3 #define GAUDIROOT_ROOTDATACONNECTION_H
76 static long setCompression(
const std::string& compression);
78 static int compression();
102 enum { ROOT_READ_ERROR = 0x2,
103 ROOT_OPEN_ERROR = 0x4
140 typedef std::vector<std::pair<std::string,std::string> >
ParamMap;
187 const std::string&
empty()
const;
215 TTree*
refs()
const {
return c->m_refs; }
221 const std::string&
name()
const {
return c->m_name; }
231 virtual TBranch* getBranch(
const std::string& section,
const std::string&
n) = 0;
240 virtual int loadRefs(
const std::string& section,
const std::string& cnt,
unsigned long entry,
RootObjectRefs& refs) = 0;
255 TFile*
file()
const {
return m_file; }
259 bool isWritable()
const {
return m_file != 0 && m_file->IsWritable(); }
271 size_t removeClient(
const IInterface* client);
273 bool lookupClient(
const IInterface* client)
const;
276 void badWriteError(
const std::string&
msg)
const;
279 std::pair<const RootRef*,const ContainerSection*> getMergeSection(
const std::string& container,
int entry)
const;
282 void enableStatistics(
const std::string& section);
284 void saveStatistics(
const std::string& statisticsFile);
287 int loadObj(
const std::string& section,
const std::string& cnt,
unsigned long entry,
DataObject*& pObj);
290 int loadRefs(
const std::string& section,
const std::string& cnt,
unsigned long entry,
RootObjectRefs& refs);
293 std::pair<int,unsigned long> saveObj(
const std::string& section,
const std::string& cnt, TClass* cl,
DataObject* pObj,
int buff_siz,
int split_lvl,
bool fill_missing=
false);
295 std::pair<int,unsigned long> save(
const std::string& section,
const std::string& cnt, TClass* cl,
void* pObj,
int buff_siz,
int split_lvl,
bool fill_missing=
false);
309 virtual long long int seek(
long long int,
int) {
return -1; }
312 TTree* getSection(
const std::string& sect,
bool create=
false);
315 TBranch* getBranch(
const std::string& section,
const std::string& branch_name)
316 {
return m_tool->getBranch(section,branch_name); }
318 TBranch* getBranch(
const std::string& section,
const std::string& branch_name, TClass* cl,
void* ptr,
int buff_siz,
int split_lvl);
323 void makeRef(
const std::string& name,
long clid,
int tech,
const std::string& db,
const std::string& cnt,
int entry,
RootRef& ref);
326 int makeLink(
const std::string& p);
329 const std::string& getDb(
int which)
const;
332 const std::string& getCont(
int which)
const
333 {
return (which>=0)&&(size_t(which)<m_conts.size()) ? *(m_conts.begin()+
which) :
empty(); }
336 const std::string& getLink(
int which)
const
337 {
return (which>=0)&&(size_t(which)<m_links.size()) ? *(m_links.begin()+
which) :
empty(); }
340 #endif // GAUDIROOT_ROOTDATACONNECTION_H