ATLAS Offline Software
Loading...
Searching...
No Matches
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"
20
21// STL include files
22#include <string>
23#include <vector>
24#include <utility>
25
26class Guid;
27class Token;
28
29/*
30 * pool namespace declaration
31 */
32namespace 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
150
157 std::vector<const Token*>& conts,
158 bool intern=false) = 0;
159
161
169 const std::string& nam,
170 std::string& val) = 0;
171
173
184 virtual DbStatus getDomainOption(const SessionH sessionH,
185 DbOption& opt) = 0;
186
188
199 virtual DbStatus setDomainOption(const SessionH sessionH,
200 const DbOption& opt) = 0;
201
203
212 DbOption& opt) = 0;
213
215
224 const DbOption& opt) = 0;
225
227
237 const std::string& cntName,
238 DbOption& opt) = 0;
239
241
251 const std::string& cntName,
252 const DbOption& opt) = 0;
253
255
263 const std::string& cntName,
264 DbSelect& sel) = 0;
265
267
275 virtual DbStatus next(DbSelect& context, Token*& refpTok) = 0;
276 };
277} // End namespace pool
278#endif // POOL_ISTORAGEEXPLORER_H
This class provides a encapsulation of a GUID/UUID/CLSID/IID data structure (128 bit number).
Definition Guid.h:25
This class provides a token that identifies in a unique way objects on the persistent storage.
Definition Token.h:21
Description: Definition an option to be supplied to database objects.
Definition DbOption.h:36
Definition of the DbSelect class.
Definition DbSelect.h:43
This class is highly inspired by the error code distribution system as it is used in DEC/VMS or MS/WN...
Definition DbStatus.h:64
The IStorageExplorer interface is able to handle user request for.
virtual DbStatus connect(const SessionH sessionH, int mode, FileDescriptor &refDB)=0
Connect to a logical Database unit.
static const Guid & interfaceID()
Retrieve interface ID.
virtual ~IStorageExplorer()
Destructor (called only by sub-classes)
virtual DbStatus setDomainOption(const SessionH sessionH, const DbOption &opt)=0
Set options for a given database domain.
std::pair< std::string, std::string > Parameter
Database parameter definition.
virtual DbStatus disconnect(FileDescriptor &refDB)=0
Disconnect from a logical Database unit.
virtual DbStatus setContainerOption(FileDescriptor &refDB, const std::string &cntName, const DbOption &opt)=0
Set options for a given database container.
virtual DbStatus select(FileDescriptor &refDB, const std::string &cntName, DbSelect &sel)=0
Initiate a selection on a given container.
virtual DbStatus queryInterface(const Guid &riid, void **ppvUnkn)=0
IInterface implementation: Query interfaces of Interface.
virtual unsigned int addRef()=0
IInterface implementation: Reference Interface instance.
virtual DbStatus next(DbSelect &context, Token *&refpTok)=0
Access the next token of a sequence.
virtual DbStatus containers(FileDescriptor &refDB, std::vector< const Token * > &conts, bool intern=false)=0
Access the containers in a given database.
virtual DbStatus getDomainOption(const SessionH sessionH, DbOption &opt)=0
Access options for a given database domain.
virtual DbStatus startSession(int mode, int tech, SessionH &session)=0
Start a new Database Session.
virtual DbStatus getContainerOption(FileDescriptor &refDB, const std::string &cntName, DbOption &opt)=0
Access options for a given database container.
virtual DbStatus getDatabaseOption(FileDescriptor &refDB, DbOption &opt)=0
Access options for a given database.
virtual DbStatus endSession(const SessionH session)=0
End the Database session.
virtual DbStatus dbParam(FileDescriptor &refDB, const std::string &nam, std::string &val)=0
Retrieve existing parameter by name.
virtual DbStatus setDatabaseOption(FileDescriptor &refDB, const DbOption &opt)=0
Set options for a given database.
std::vector< Parameter > Parameters
Database parameter container definition.
virtual unsigned int release()=0
IInterface implementation: Release Interface instance.
Description:
Definition Shape.h:35
pool namespace
Definition libname.h:15
class Session * SessionH
const class Shape * ShapeH