The Gaudi Framework  v30r0 (c919700c)
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 "boost/utility/string_ref.hpp"
9 #include <string>
10 
11 // Forward declarations
12 class DataObject;
13 class IOpaqueAddress;
14 class IRegistry;
15 class DataStoreItem;
16 
46 class GAUDI_API IDataProviderSvc : virtual public IInterface
47 {
48 public:
51 
52  enum { SEPARATOR = '/' };
53 
61  virtual StatusCode registerObject( boost::string_ref fullPath, DataObject* pObject ) = 0;
62 
71  virtual StatusCode registerObject( boost::string_ref parentPath, boost::string_ref objectPath,
72  DataObject* pObject ) = 0;
73 
82  virtual StatusCode registerObject( boost::string_ref parentPath, int item, DataObject* pObject ) = 0;
83 
92  virtual StatusCode registerObject( DataObject* parentObj, boost::string_ref objectPath, DataObject* pObject ) = 0;
93 
102  virtual StatusCode registerObject( DataObject* parentObj, int item, DataObject* pObject ) = 0;
103 
117  virtual StatusCode unregisterObject( boost::string_ref fullPath ) = 0;
118 
133  virtual StatusCode unregisterObject( boost::string_ref parentPath, boost::string_ref objPath ) = 0;
134 
149  virtual StatusCode unregisterObject( boost::string_ref parentPath, int item ) = 0;
150 
164  virtual StatusCode unregisterObject( DataObject* pObject ) = 0;
165 
180  virtual StatusCode unregisterObject( DataObject* pParent, boost::string_ref objPath ) = 0;
181 
196  virtual StatusCode unregisterObject( DataObject* pParent, int item ) = 0;
197 
208  virtual StatusCode retrieveObject( IRegistry* pDirectory, boost::string_ref path, DataObject*& pObject ) = 0;
209 
218  virtual StatusCode retrieveObject( boost::string_ref fullPath, DataObject*& pObject ) = 0;
219 
230  virtual StatusCode retrieveObject( boost::string_ref parentPath, boost::string_ref objectPath,
231  DataObject*& pObject ) = 0;
232 
243  virtual StatusCode retrieveObject( boost::string_ref parentPath, int item, DataObject*& pObject ) = 0;
244 
255  virtual StatusCode retrieveObject( DataObject* parentObj, boost::string_ref objectPath, DataObject*& pObject ) = 0;
256 
267  virtual StatusCode retrieveObject( DataObject* parentObj, int item, DataObject*& pObject ) = 0;
268 
278  virtual StatusCode findObject( IRegistry* pDirectory, boost::string_ref path, DataObject*& pObject ) = 0;
279 
287  virtual StatusCode findObject( boost::string_ref fullPath, DataObject*& pObject ) = 0;
288 
298  virtual StatusCode findObject( boost::string_ref parentPath, boost::string_ref objectPath, DataObject*& pObject ) = 0;
299 
308  virtual StatusCode findObject( boost::string_ref parentPath, int item, DataObject*& pObject ) = 0;
309 
319  virtual StatusCode findObject( DataObject* pNode, boost::string_ref 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( boost::string_ref fullPath ) = 0;
345 
352  virtual StatusCode updateObject( DataObject* toUpdate ) = 0;
353 
362  virtual StatusCode updateObject( boost::string_ref parentPath, boost::string_ref updatePath ) = 0;
363 
372  virtual StatusCode updateObject( DataObject* pParent, boost::string_ref updatePath ) = 0;
373 
378  virtual StatusCode addPreLoadItem( const DataStoreItem& item ) = 0;
379 
385  virtual StatusCode addPreLoadItem( std::string itemPath ) = 0;
386 
391  virtual StatusCode removePreLoadItem( const DataStoreItem& item ) = 0;
392 
397  virtual StatusCode removePreLoadItem( std::string itemPath ) = 0;
398 
402  virtual StatusCode resetPreLoad() = 0;
403 
407  virtual StatusCode preLoad() = 0;
408 
417  virtual StatusCode linkObject( IRegistry* from, boost::string_ref objPath, DataObject* toObj ) = 0;
418 
427  virtual StatusCode linkObject( boost::string_ref fromPath, boost::string_ref objPath, DataObject* toObj ) = 0;
428 
437  virtual StatusCode linkObject( DataObject* fromObj, boost::string_ref objPath, DataObject* toObj ) = 0;
438 
446  virtual StatusCode linkObject( boost::string_ref fullPath, DataObject* toObj ) = 0;
447 
456  virtual StatusCode unlinkObject( IRegistry* from, boost::string_ref objPath ) = 0;
457 
466  virtual StatusCode unlinkObject( boost::string_ref fromPath, boost::string_ref objPath ) = 0;
467 
476  virtual StatusCode unlinkObject( DataObject* fromObj, boost::string_ref objPath ) = 0;
477 
485  virtual StatusCode unlinkObject( boost::string_ref 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:26
#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:30