All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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 
559  virtual ~IDataProviderSvc() {}
560 };
561 
562 #endif // GAUDIKERNEL_IDATAPROVIDERSVC_H
The path for this objects is already in use.
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:18
Directory entry is NOT empty.
Status
Status code definitions.
virtual ~IDataProviderSvc()
virtual destructor
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:30
Definition of the basic interface.
Definition: IInterface.h:160
#define DeclareInterfaceID(name, major, minor)
Macro to declare the interface ID when using the new mechanism of extending and implementing interfac...
Definition: IInterface.h:23
The IRegistry represents the entry door to the environment any data object residing in a transient da...
Definition: IRegistry.h:22
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
Pointer to parent object is not valid.
Object pointer is invalid.
tuple item
print s1,s2
Definition: ana.py:146
Invalid path from root to object request failed.
Opaque address interface definition.
#define GAUDI_API
Definition: Kernel.h:108
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:31