The Gaudi Framework  v29r0 (ff2e7097)
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 {
47 public:
50 
51  enum { SEPARATOR = '/' };
52 
60  virtual StatusCode registerObject( const std::string& fullPath, DataObject* pObject ) = 0;
61 
70  virtual StatusCode registerObject( const std::string& parentPath, const std::string& objectPath,
71  DataObject* pObject ) = 0;
72 
81  virtual StatusCode registerObject( const std::string& parentPath, int item, DataObject* pObject ) = 0;
82 
91  virtual StatusCode registerObject( DataObject* parentObj, const std::string& objectPath, DataObject* pObject ) = 0;
92 
101  virtual StatusCode registerObject( DataObject* parentObj, int item, DataObject* pObject ) = 0;
102 
116  virtual StatusCode unregisterObject( const std::string& fullPath ) = 0;
117 
132  virtual StatusCode unregisterObject( const std::string& parentPath, const std::string& objPath ) = 0;
133 
148  virtual StatusCode unregisterObject( const std::string& parentPath, int item ) = 0;
149 
163  virtual StatusCode unregisterObject( DataObject* pObject ) = 0;
164 
179  virtual StatusCode unregisterObject( DataObject* pParent, const std::string& objPath ) = 0;
180 
195  virtual StatusCode unregisterObject( DataObject* pParent, int item ) = 0;
196 
207  virtual StatusCode retrieveObject( IRegistry* pDirectory, const std::string& path, DataObject*& pObject ) = 0;
208 
217  virtual StatusCode retrieveObject( const std::string& fullPath, DataObject*& pObject ) = 0;
218 
229  virtual StatusCode retrieveObject( const std::string& parentPath, const std::string& objectPath,
230  DataObject*& pObject ) = 0;
231 
242  virtual StatusCode retrieveObject( const std::string& parentPath, int item, DataObject*& pObject ) = 0;
243 
254  virtual StatusCode retrieveObject( DataObject* parentObj, const std::string& objectPath, DataObject*& pObject ) = 0;
255 
266  virtual StatusCode retrieveObject( DataObject* parentObj, int item, DataObject*& pObject ) = 0;
267 
277  virtual StatusCode findObject( IRegistry* pDirectory, const std::string& path, DataObject*& pObject ) = 0;
278 
286  virtual StatusCode findObject( const std::string& fullPath, DataObject*& pObject ) = 0;
287 
297  virtual StatusCode findObject( const std::string& parentPath, const std::string& objectPath,
298  DataObject*& pObject ) = 0;
299 
308  virtual StatusCode findObject( const std::string& parentPath, int item, DataObject*& pObject ) = 0;
309 
319  virtual StatusCode findObject( DataObject* pNode, const std::string& objectPath, DataObject*& pObject ) = 0;
320 
329  virtual StatusCode findObject( DataObject* parentObj, int item, DataObject*& pObject ) = 0;
330 
336  virtual StatusCode updateObject( IRegistry* pDirectory ) = 0;
337 
344  virtual StatusCode updateObject( const std::string& fullPath ) = 0;
345 
352  virtual StatusCode updateObject( DataObject* toUpdate ) = 0;
353 
362  virtual StatusCode updateObject( const std::string& parentPath, const std::string& updatePath ) = 0;
363 
372  virtual StatusCode updateObject( DataObject* pParent, const std::string& updatePath ) = 0;
373 
378  virtual StatusCode addPreLoadItem( const DataStoreItem& item ) = 0;
379 
385  virtual StatusCode addPreLoadItem( const std::string& itemPath ) = 0;
386 
391  virtual StatusCode removePreLoadItem( const DataStoreItem& item ) = 0;
392 
397  virtual StatusCode removePreLoadItem( const std::string& itemPath ) = 0;
398 
402  virtual StatusCode resetPreLoad() = 0;
403 
407  virtual StatusCode preLoad() = 0;
408 
417  virtual StatusCode linkObject( IRegistry* from, const std::string& objPath, DataObject* toObj ) = 0;
418 
427  virtual StatusCode linkObject( const std::string& fromPath, const std::string& objPath, DataObject* toObj ) = 0;
428 
437  virtual StatusCode linkObject( DataObject* fromObj, const std::string& objPath, DataObject* toObj ) = 0;
438 
446  virtual StatusCode linkObject( const std::string& fullPath, DataObject* toObj ) = 0;
447 
456  virtual StatusCode unlinkObject( IRegistry* from, const std::string& objPath ) = 0;
457 
466  virtual StatusCode unlinkObject( const std::string& fromPath, const std::string& objPath ) = 0;
467 
476  virtual StatusCode unlinkObject( DataObject* fromObj, const std::string& objPath ) = 0;
477 
485  virtual StatusCode unlinkObject( const std::string& fullPath ) = 0;
486 
488  enum Status {
490  IDataProviderSvc_NO_ERROR = 1,
514  LAST
515  };
516 };
517 
518 #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.
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: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
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:110
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:29