The Gaudi Framework  v29r0 (ff2e7097)
IDataManagerSvc.h
Go to the documentation of this file.
1 #ifndef GAUDIKERNEL_IDATAMANAGERSVC_H
2 #define GAUDIKERNEL_IDATAMANAGERSVC_H
3 
4 // Include files
5 #include "GaudiKernel/ClassID.h"
7 #include <string>
8 #include <vector>
9 
10 // Forward declarations
11 // Generic interface to data object class
12 class DataObject;
13 // Interface to persistency service
14 class IConversionSvc;
15 // Data agent
16 class IDataStoreAgent;
17 // Opaque addresses
18 class IOpaqueAddress;
19 // Registry entry definition
20 class IRegistry;
21 // Data provider svc
22 class IDataProviderSvc;
23 
45 class GAUDI_API IDataManagerSvc : virtual public IInterface
46 {
47 public:
50 
52  virtual CLID rootCLID() const = 0;
53 
55  virtual const std::string& rootName() const = 0;
56 
63  virtual StatusCode setDataLoader( IConversionSvc* svc, IDataProviderSvc* dpsvc = nullptr ) = 0;
64 
71  virtual StatusCode objectParent( const DataObject* pObject, IRegistry*& refpParent ) = 0;
72 
79  virtual StatusCode objectParent( const IRegistry* pRegistry, IRegistry*& refpParent ) = 0;
80 
89  virtual StatusCode objectLeaves( const DataObject* pObject, std::vector<IRegistry*>& refLeaves ) = 0;
90 
99  virtual StatusCode objectLeaves( const IRegistry* pRegistry, std::vector<IRegistry*>& refLeaves ) = 0;
100 
105  virtual StatusCode clearSubTree( const std::string& sub_path ) = 0;
106 
112  virtual StatusCode clearSubTree( DataObject* pObject ) = 0;
113 
117  virtual StatusCode clearStore() = 0;
118 
123  virtual StatusCode traverseSubTree( const std::string& sub_path, IDataStoreAgent* pAgent ) = 0;
124 
131  virtual StatusCode traverseSubTree( DataObject* pObject, IDataStoreAgent* pAgent ) = 0;
132 
136  virtual StatusCode traverseTree( IDataStoreAgent* pAgent ) = 0;
137 
144  virtual StatusCode setRoot( std::string root_name, DataObject* pObject ) = 0;
145 
152  virtual StatusCode setRoot( std::string root_path, IOpaqueAddress* pRootAddr ) = 0;
153 
161  virtual StatusCode registerAddress( const std::string& fullPath, IOpaqueAddress* pAddress ) = 0;
162 
171  virtual StatusCode registerAddress( DataObject* parentObj, const std::string& objectPath,
172  IOpaqueAddress* pAddress ) = 0;
173 
182  virtual StatusCode registerAddress( IRegistry* parentObj, const std::string& objectPath,
183  IOpaqueAddress* pAddress ) = 0;
184 
190  virtual StatusCode unregisterAddress( const std::string& fullPath ) = 0;
191 
199  virtual StatusCode unregisterAddress( DataObject* pParent, const std::string& objPath ) = 0;
200 
208  virtual StatusCode unregisterAddress( IRegistry* pParent, const std::string& objPath ) = 0;
209 };
210 
211 #endif // GAUDIKERNEL_IDATAMANAGERSVC_H
Data provider interface definition.
STL class.
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:28
#define DeclareInterfaceID(iface, major, minor)
Macro to declare the interface ID when using the new mechanism of extending and implementing interfac...
Definition: IInterface.h:13
Definition of the basic interface.
Definition: IInterface.h:277
The IRegistry represents the entry door to the environment any data object residing in a transient da...
Definition: IRegistry.h:22
unsigned int CLID
Class ID definition.
Definition: ClassID.h:8
Generic data agent interface.
Opaque address interface definition.
#define GAUDI_API
Definition: Kernel.h:110
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:29