ATLAS Offline Software
IStorageExplorer.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 //====================================================================
6 // $Id: IStorageExplorer.h 726071 2016-02-25 09:23:05Z krasznaa $
7 //
8 // Package : pool/StorageSvc (The pool framework)
9 //
10 // @author M.Frank
11 //
12 //====================================================================
13 // $Header: /cvs/PF/pool/StorageSvc/StorageSvc/IStorageExplorer.h,v 1.19 2010/05/18 09:45:51 avalassi Exp $
14 #ifndef POOL_ISTORAGEEXPLORER_H
15 #define POOL_ISTORAGEEXPLORER_H
16 
17 // Framework include files
18 #include "StorageSvc/DbStatus.h"
19 #include "StorageSvc/DbDatabase.h"
20 
21 // STL include files
22 #include <string>
23 #include <vector>
24 #include <utility>
25 
26 class Guid;
27 class Token;
28 
29 /*
30  * pool namespace declaration
31  */
32 namespace pool {
33 
34  // Forward declarations
35  typedef class Session *SessionH;
36  typedef const class Shape *ShapeH;
37  class FileDescriptor;
38  class DbSelect;
39  class DbOption;
40 
54  protected:
56  virtual ~IStorageExplorer() { }
57 
58  public:
60  typedef std::pair<std::string, std::string> Parameter;
62  typedef std::vector< Parameter > Parameters;
63 
65  static const Guid& interfaceID();
66 
68  virtual DbStatus queryInterface(const Guid& riid, void** ppvUnkn) = 0;
69 
71  virtual unsigned int addRef() = 0;
72 
74  virtual unsigned int release() = 0;
75 
77 
94  virtual DbStatus startSession(int mode,
95  int tech,
96  SessionH& session) = 0;
97 
99 
111  virtual DbStatus endSession( const SessionH session) = 0;
112 
114 
129  virtual DbStatus connect( const SessionH sessionH,
130  int mode,
131  FileDescriptor& refDB) = 0;
132 
134 
147  virtual DbStatus disconnect( FileDescriptor& refDB) = 0;
148 
157  virtual long long int databaseSize( FileDescriptor& refDB) const = 0;
158 
160 
167  std::vector<const Token*>& conts,
168  bool intern=false) = 0;
169 
171 
177  std::vector<const Token*>& assocs) = 0;
178 
180 
185  virtual DbStatus shapes( FileDescriptor& refDB,
186  std::vector<ShapeH>& shapes) = 0;
187 
189 
198  const std::string& nam,
199  const std::string& val) = 0;
200 
202 
209  virtual DbStatus dbParam( FileDescriptor& refDB,
210  const std::string& nam,
211  std::string& val) = 0;
212 
214 
221  Parameters& vals) = 0;
222 
224 
235  virtual DbStatus getDomainOption(const SessionH sessionH,
236  DbOption& opt) = 0;
237 
239 
250  virtual DbStatus setDomainOption(const SessionH sessionH,
251  const DbOption& opt) = 0;
252 
254 
263  DbOption& opt) = 0;
264 
266 
275  const DbOption& opt) = 0;
276 
278 
288  const std::string& cntName,
289  DbOption& opt) = 0;
290 
292 
302  const std::string& cntName,
303  const DbOption& opt) = 0;
304 
306 
315  virtual DbStatus select( FileDescriptor& refDB,
316  const std::string& cntName,
317  DbSelect& sel) = 0;
318 
320 
328  virtual DbStatus next(DbSelect& context, Token*& refpTok) = 0;
329  };
330 } // End namespace pool
331 #endif // POOL_ISTORAGEEXPLORER_H
pool::IStorageExplorer::shapes
virtual DbStatus shapes(FileDescriptor &refDB, std::vector< ShapeH > &shapes)=0
Access Shapes known to the database.
pool::IStorageExplorer::getDatabaseOption
virtual DbStatus getDatabaseOption(FileDescriptor &refDB, DbOption &opt)=0
Access options for a given database.
pool::DbStatus
Definition: DbStatus.h:67
pool
pool namespace
Definition: libname.h:15
pool::SessionH
class Session * SessionH
Definition: IStorageExplorer.h:35
pool::FileDescriptor
Definition: FileDescriptor.h:41
pool::IStorageExplorer::addDbParam
virtual DbStatus addDbParam(FileDescriptor &refDB, const std::string &nam, const std::string &val)=0
Add a persistent parameter to the database.
pool::IStorageExplorer
Definition: IStorageExplorer.h:53
python.oracle.Session
Session
Definition: oracle.py:78
pool::Shape
Definition: Shape.h:35
pool::IStorageExplorer::select
virtual DbStatus select(FileDescriptor &refDB, const std::string &cntName, DbSelect &sel)=0
Initiate a selection on a given container.
pool::IStorageExplorer::endSession
virtual DbStatus endSession(const SessionH session)=0
End the Database session.
pool::IStorageExplorer::Parameter
std::pair< std::string, std::string > Parameter
Database parameter definition.
Definition: IStorageExplorer.h:60
pool::IStorageExplorer::dbParam
virtual DbStatus dbParam(FileDescriptor &refDB, const std::string &nam, std::string &val)=0
Retrieve existing parameter by name.
pool::IStorageExplorer::startSession
virtual DbStatus startSession(int mode, int tech, SessionH &session)=0
Start a new Database Session.
DbDatabase.h
Token
This class provides a token that identifies in a unique way objects on the persistent storage.
Definition: Token.h:21
pool::ShapeH
const class Shape * ShapeH
Definition: DbContainerObj.h:27
pool::IStorageExplorer::connect
virtual DbStatus connect(const SessionH sessionH, int mode, FileDescriptor &refDB)=0
Connect to a logical Database unit.
pool::IStorageExplorer::Parameters
std::vector< Parameter > Parameters
Database parameter container definition.
Definition: IStorageExplorer.h:62
pool::IStorageExplorer::associations
virtual DbStatus associations(FileDescriptor &refDB, std::vector< const Token * > &assocs)=0
Access the container level associations between objects.
pool::IStorageExplorer::release
virtual unsigned int release()=0
IInterface implementation: Release Interface instance
pool::DbOption
Definition: DbOption.h:36
sel
sel
Definition: SUSYToolsTester.cxx:92
pool::DbSelect
Definition: DbSelect.h:44
pool::IStorageExplorer::containers
virtual DbStatus containers(FileDescriptor &refDB, std::vector< const Token * > &conts, bool intern=false)=0
Access the containers in a given database.
Preparation.mode
mode
Definition: Preparation.py:95
pool::IStorageExplorer::queryInterface
virtual DbStatus queryInterface(const Guid &riid, void **ppvUnkn)=0
IInterface implementation: Query interfaces of Interface.
pool::IStorageExplorer::setContainerOption
virtual DbStatus setContainerOption(FileDescriptor &refDB, const std::string &cntName, const DbOption &opt)=0
Set options for a given database container.
pool::IStorageExplorer::getContainerOption
virtual DbStatus getContainerOption(FileDescriptor &refDB, const std::string &cntName, DbOption &opt)=0
Access options for a given database container.
pool::IStorageExplorer::addRef
virtual unsigned int addRef()=0
IInterface implementation: Reference Interface instance
pool::IStorageExplorer::databaseSize
virtual long long int databaseSize(FileDescriptor &refDB) const =0
Access the size of the database: May be undefined for some technologies.
pmontree.opt
opt
Definition: pmontree.py:16
pool::IStorageExplorer::setDatabaseOption
virtual DbStatus setDatabaseOption(FileDescriptor &refDB, const DbOption &opt)=0
Set options for a given database.
Guid
This class provides a encapsulation of a GUID/UUID/CLSID/IID data structure (128 bit number).
Definition: Guid.h:20
pool::IStorageExplorer::dbParams
virtual DbStatus dbParams(FileDescriptor &refDB, Parameters &vals)=0
Retrieve all parameters.
pool::IStorageExplorer::next
virtual DbStatus next(DbSelect &context, Token *&refpTok)=0
Access the next token of a sequence.
pool::IStorageExplorer::interfaceID
static const Guid & interfaceID()
Retrieve interface ID.
Pythia8_RapidityOrderMPI.val
val
Definition: Pythia8_RapidityOrderMPI.py:14
pool::IStorageExplorer::getDomainOption
virtual DbStatus getDomainOption(const SessionH sessionH, DbOption &opt)=0
Access options for a given database domain.
DbStatus.h
pool::IStorageExplorer::setDomainOption
virtual DbStatus setDomainOption(const SessionH sessionH, const DbOption &opt)=0
Set options for a given database domain.
pool::IStorageExplorer::disconnect
virtual DbStatus disconnect(FileDescriptor &refDB)=0
Disconnect from a logical Database unit.
pool::IStorageExplorer::~IStorageExplorer
virtual ~IStorageExplorer()
Destructor (called only by sub-classes)
Definition: IStorageExplorer.h:56
PlotCalibFromCool.vals
vals
Definition: PlotCalibFromCool.py:474