IDataProviderSvc.h
Go to the documentation of this file.
1 #ifndef GAUDIKERNEL_IDATAPROVIDERSVC_H
2 #define GAUDIKERNEL_IDATAPROVIDERSVC_H
3 
4 // Framework include files
6 
7 // C/C++ include files
8 #include <string>
9 
10 // Forward declarations
11 class DataObject;
12 class IOpaqueAddress;
13 class IRegistry;
14 class DataStoreItem;
15 
45 class GAUDI_API IDataProviderSvc: virtual public IInterface {
46 public:
49 
50  enum { SEPARATOR = '/' };
51 
59  virtual StatusCode registerObject(const std::string& fullPath,
60  DataObject* pObject) = 0;
61 
70  virtual StatusCode registerObject(const std::string& parentPath,
71  const std::string& objectPath,
72  DataObject* pObject) = 0;
73 
82  virtual StatusCode registerObject(const std::string& parentPath,
83  int item,
84  DataObject* pObject) = 0;
85 
94  virtual StatusCode registerObject(DataObject* parentObj,
95  const std::string& objectPath,
96  DataObject* pObject) = 0;
97 
106  virtual StatusCode registerObject(DataObject* parentObj,
107  int item,
108  DataObject* pObject) = 0;
109 
123  virtual StatusCode unregisterObject(const std::string& fullPath) = 0;
124 
139  virtual StatusCode unregisterObject(const std::string& parentPath,
140  const std::string& objPath) = 0;
141 
156  virtual StatusCode unregisterObject(const std::string& parentPath,
157  int item) = 0;
158 
172  virtual StatusCode unregisterObject(DataObject* pObject) = 0;
173 
188  virtual StatusCode unregisterObject(DataObject* pParent,
189  const std::string& objPath) = 0;
190 
205  virtual StatusCode unregisterObject(DataObject* pParent, int item) = 0;
206 
217  virtual StatusCode retrieveObject(IRegistry* pDirectory,
218  const std::string& path,
219  DataObject*& pObject) = 0;
220 
229  virtual StatusCode retrieveObject(const std::string& fullPath,
230  DataObject*& pObject) = 0;
231 
242  virtual StatusCode retrieveObject(const std::string& parentPath,
243  const std::string& objectPath,
244  DataObject*& pObject) = 0;
245 
256  virtual StatusCode retrieveObject(const std::string& parentPath,
257  int item, DataObject*& pObject) = 0;
258 
269  virtual StatusCode retrieveObject(DataObject* parentObj,
270  const std::string& objectPath,
271  DataObject*& pObject) = 0;
272 
283  virtual StatusCode retrieveObject(DataObject* parentObj,
284  int item,
285  DataObject*& pObject) = 0;
286 
296  virtual StatusCode findObject(IRegistry* pDirectory,
297  const std::string& path,
298  DataObject*& pObject) = 0;
299 
307  virtual StatusCode findObject(const std::string& fullPath,
308  DataObject*& pObject) = 0;
309 
319  virtual StatusCode findObject(const std::string& parentPath,
320  const std::string& objectPath,
321  DataObject*& pObject) = 0;
322 
331  virtual StatusCode findObject(const std::string& parentPath,
332  int item,
333  DataObject*& pObject) = 0;
334 
344  virtual StatusCode findObject(DataObject* pNode,
345  const std::string& objectPath,
346  DataObject*& pObject) = 0;
347 
356  virtual StatusCode findObject(DataObject* parentObj,
357  int item,
358  DataObject*& pObject) = 0;
359 
365  virtual StatusCode updateObject(IRegistry* pDirectory) = 0;
366 
373  virtual StatusCode updateObject(const std::string& fullPath) = 0;
374 
381  virtual StatusCode updateObject(DataObject* toUpdate) = 0;
382 
391  virtual StatusCode updateObject(const std::string& parentPath,
392  const std::string& updatePath) = 0;
393 
402  virtual StatusCode updateObject(DataObject* pParent,
403  const std::string& updatePath) = 0;
404 
409  virtual StatusCode addPreLoadItem(const DataStoreItem& item) = 0;
410 
416  virtual StatusCode addPreLoadItem(const std::string& itemPath) = 0;
417 
422  virtual StatusCode removePreLoadItem(const DataStoreItem& item) = 0;
423 
428  virtual StatusCode removePreLoadItem(const std::string& itemPath) = 0;
429 
433  virtual StatusCode resetPreLoad() = 0;
434 
438  virtual StatusCode preLoad() = 0;
439 
448  virtual StatusCode linkObject(IRegistry* from,
449  const std::string& objPath,
450  DataObject* toObj) = 0;
451 
460  virtual StatusCode linkObject(const std::string& fromPath,
461  const std::string& objPath,
462  DataObject* toObj) = 0;
463 
472  virtual StatusCode linkObject(DataObject* fromObj,
473  const std::string& objPath,
474  DataObject* toObj) = 0;
475 
483  virtual StatusCode linkObject(const std::string& fullPath,
484  DataObject* toObj) = 0;
485 
494  virtual StatusCode unlinkObject(IRegistry* from,
495  const std::string& objPath) = 0;
496 
505  virtual StatusCode unlinkObject(const std::string& fromPath,
506  const std::string& objPath) = 0;
507 
516  virtual StatusCode unlinkObject(DataObject* fromObj,
517  const std::string& objPath) = 0;
518 
526  virtual StatusCode unlinkObject(const std::string& fullPath) = 0;
527 
529  enum Status {
531  IDataProviderSvc_NO_ERROR = 1,
555  LAST
556  };
557 
558 };
559 
560 #endif // GAUDIKERNEL_IDATAPROVIDERSVC_H
The path for this objects is already in use.
constexpr char SEPARATOR
Automatic data loading had to stop: maximum depth.
Invalid root path object cannot be retrieved or stored.
No data loader available.
Sorry, the requested object is not loaded.
Access to the requested leaf is inhibited.
#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
Data provider interface definition.
Description of the DataStoreItem class.
Definition: DataStoreItem.h:17
STL class.
Directory entry is NOT empty.
Status
Status code definitions.
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
Pointer to parent object is not valid.
Object pointer is invalid.
Invalid path from root to object request failed.
Opaque address interface definition.
#define GAUDI_API
Definition: Kernel.h:107
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:30