ATLAS Offline Software
RootOODb.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 //====================================================================
6 // Root Database implementation
7 //--------------------------------------------------------------------
8 //
9 // Package : RootStorageSvc (The POOL project)
10 //
11 // Author : M.Frank
12 //====================================================================
13 #ifndef POOL_ROOTSTORAGESVC_ROOTOODB_H
14 #define POOL_ROOTSTORAGESVC_ROOTOODB_H 1
15 
16 // Framework include files
17 #include "StorageSvc/IOODatabase.h"
18 
19 #include "Gaudi/PluginService.h"
20 
21 /*
22  * POOL namespace
23  */
24 namespace pool {
25 
38  class RootOODb : public IOODatabase {
39  public:
40  typedef Gaudi::PluginService::Factory<IOODatabase*()> Factory;
41 
43  RootOODb(DbType typ=ROOT_StorageType);
45  virtual ~RootOODb();
46 
48  virtual const std::string& name () const;
49 
51  static const char* catalogLabel() { return "ROOT_All"; }
52 
59  };
60 
61  class RootOOKey : public RootOODb {
62  public:
64  RootOOKey() : RootOODb(ROOTKEY_StorageType) { }
66  static const char* catalogLabel() { return "ROOT_Key"; }
67  };
68 
69  class RootOOTree : public RootOODb {
70  public:
72  RootOOTree() : RootOODb(ROOTTREE_StorageType) { }
74  static const char* catalogLabel() { return "ROOT_Tree"; }
75  };
76 
77  class RootOOTreeIndex : public RootOODb {
78  public:
80  RootOOTreeIndex() : RootOODb(ROOTTREEINDEX_StorageType) { }
82  static const char* catalogLabel() { return "ROOT_Tree"; }
83  };
84 
85  class RootOORNTuple : public RootOODb {
86  public:
88  RootOORNTuple() : RootOODb(ROOTRNTUPLE_StorageType) { }
90  static const char* catalogLabel() { return "ROOT_RNTuple"; }
91  };
92 
93 } // end namespace pool
94 
95 #endif /* POOL_ROOTSTORAGESVC_ROOTOODB_H */
pool::RootOOTree::RootOOTree
RootOOTree()
Standard Constructor.
Definition: RootOODb.h:72
pool::RootOORNTuple
Definition: RootOODb.h:85
pool::RootOOTreeIndex::catalogLabel
static const char * catalogLabel()
Label of the specific class.
Definition: RootOODb.h:82
pool::RootOODb::createDatabase
IDbDatabase * createDatabase()
Create Root Database object (TFile)
pool::RootOOKey
Definition: RootOODb.h:61
pool
pool namespace
Definition: libname.h:15
pool::IDbContainer
Definition: IDbContainer.h:47
pool::RootOOTree
Definition: RootOODb.h:69
pool::IDbDomain
Definition: IDbDomain.h:40
pool::RootOODb::Factory
Gaudi::PluginService::Factory< IOODatabase *()> Factory
Definition: RootOODb.h:40
pool::RootOOKey::RootOOKey
RootOOKey()
Standard Constructor.
Definition: RootOODb.h:64
pool::RootOORNTuple::RootOORNTuple
RootOORNTuple()
Standard Constructor.
Definition: RootOODb.h:88
pool::IDbDatabase
Definition: IDbDatabase.h:41
IOODatabase.h
pool::DbType
Definition: DbType.h:31
pool::RootOODb::createContainer
IDbContainer * createContainer(const DbType &typ)
Create Root Container object.
pool::RootOODb
Definition: RootOODb.h:38
pool::RootOODb::name
virtual const std::string & name() const
Name of the Database implementation.
pool::RootOOTreeIndex::RootOOTreeIndex
RootOOTreeIndex()
Standard Constructor.
Definition: RootOODb.h:80
pool::RootOODb::RootOODb
RootOODb(DbType typ=ROOT_StorageType)
Standard Constructor.
pool::RootOODb::catalogLabel
static const char * catalogLabel()
Label of the specific class.
Definition: RootOODb.h:51
pool::RootOORNTuple::catalogLabel
static const char * catalogLabel()
Label of the specific class.
Definition: RootOODb.h:90
pool::RootOOTreeIndex
Definition: RootOODb.h:77
pool::RootOOKey::catalogLabel
static const char * catalogLabel()
Label of the specific class.
Definition: RootOODb.h:66
pool::RootOOTree::catalogLabel
static const char * catalogLabel()
Label of the specific class.
Definition: RootOODb.h:74
pool::RootOODb::~RootOODb
virtual ~RootOODb()
Standard Destructor.
pool::RootOODb::createDomain
IDbDomain * createDomain()
Create Root Domain object.
pool::IOODatabase
Definition: IOODatabase.h:50