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 <string>
6 #include <vector>
7 #include "GaudiKernel/ClassID.h"
8 #include "GaudiKernel/IInterface.h"
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 
43 class GAUDI_API IDataManagerSvc: virtual public IInterface {
44 public:
47 
49  virtual CLID rootCLID() const = 0;
50 
52  virtual const std::string& rootName() const = 0;
53 
59  virtual StatusCode setDataLoader( IConversionSvc* svc ) = 0;
60 
67  virtual StatusCode objectParent( const DataObject* pObject,
68  IRegistry*& refpParent) = 0;
69 
76  virtual StatusCode objectParent( const IRegistry* pRegistry,
77  IRegistry*& refpParent) = 0;
78 
87  virtual StatusCode objectLeaves( const DataObject* pObject,
88  std::vector<IRegistry*>& refLeaves) = 0;
89 
98  virtual StatusCode objectLeaves( const IRegistry* pRegistry,
99  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,
124  IDataStoreAgent* pAgent ) = 0;
125 
132  virtual StatusCode traverseSubTree( DataObject* pObject,
133  IDataStoreAgent* pAgent ) = 0;
134 
138  virtual StatusCode traverseTree( IDataStoreAgent* pAgent) = 0;
139 
146  virtual StatusCode setRoot( std::string root_name,
147  DataObject* pObject ) = 0;
148 
155  virtual StatusCode setRoot( std::string root_path,
156  IOpaqueAddress* pRootAddr) = 0;
157 
165  virtual StatusCode registerAddress( const std::string& fullPath,
166  IOpaqueAddress* pAddress) = 0;
167 
176  virtual StatusCode registerAddress( DataObject* parentObj,
177  const std::string& objectPath,
178  IOpaqueAddress* pAddress) = 0;
179 
188  virtual StatusCode registerAddress( IRegistry* parentObj,
189  const std::string& objectPath,
190  IOpaqueAddress* pAddress) = 0;
191 
197  virtual StatusCode unregisterAddress(const std::string& fullPath) = 0;
198 
206  virtual StatusCode unregisterAddress(DataObject* pParent,
207  const std::string& objPath) = 0;
208 
216  virtual StatusCode unregisterAddress(IRegistry* pParent, const std::string& objPath) = 0;
217 };
218 
219 #endif // GAUDIKERNEL_IDATAMANAGERSVC_H
#define GAUDI_API
Definition: Kernel.h:107
#define DeclareInterfaceID(iface, major, minor)
Macro to declare the interface ID when using the new mechanism of extending and implementing interfac...
Definition: IInterface.h:14
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
Definition of the basic interface.
Definition: IInterface.h:234
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.
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:30