| The Gaudi Framework v30r0 (c919700c)

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

IDataProviderSvc.h
Go to the documentation of this file.
1 #ifndef GAUDIKERNEL_IDATAPROVIDERSVC_H
2 #define GAUDIKERNEL_IDATAPROVIDERSVC_H
3
4 // Framework include files
5 #include "GaudiKernel/IInterface.h"
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:
50 DeclareInterfaceID( IDataProviderSvc, 4, 0 );
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,
492 DOUBL_OBJ_PATH,
494 INVALID_OBJ_PATH,
496 INVALID_ROOT,
498 INVALID_OBJECT,
500 INVALID_PARENT,
502 OBJ_NOT_LOADED,
504 NO_DATA_LOADER,
506 INVALID_OBJ_ADDR,
508 DIR_NOT_EMPTY,
510 NO_MORE_LEVELS,
512 NO_ACCESS,
514 LAST
515 };
516 };
517
518 #endif // GAUDIKERNEL_IDATAPROVIDERSVC_H
IDataProviderSvc::DOUBL_OBJ_PATH
The path for this objects is already in use.
Definition: IDataProviderSvc.h:492
GaudiPython.HistoUtils.path
path
Definition: HistoUtils.py:895
SEPARATOR
constexpr char SEPARATOR
Definition: RegistryEntry.cpp:40
IDataProviderSvc::NO_MORE_LEVELS
Automatic data loading had to stop: maximum depth.
Definition: IDataProviderSvc.h:510
IDataProviderSvc::INVALID_OBJ_ADDR
Invalid object address.
Definition: IDataProviderSvc.h:506
IDataProviderSvc::INVALID_ROOT
Invalid root path object cannot be retrieved or stored.
Definition: IDataProviderSvc.h:496
IDataProviderSvc::NO_DATA_LOADER
No data loader available.
Definition: IDataProviderSvc.h:504
IDataProviderSvc::OBJ_NOT_LOADED
Sorry, the requested object is not loaded.
Definition: IDataProviderSvc.h:502
IDataProviderSvc::NO_ACCESS
Access to the requested leaf is inhibited.
Definition: IDataProviderSvc.h:512
IDataProviderSvc
Data provider interface definition.
Definition: IDataProviderSvc.h:46
DataStoreItem
Description of the DataStoreItem class.
Definition: DataStoreItem.h:17
std::string
STL class.
IDataProviderSvc::DIR_NOT_EMPTY
Directory entry is NOT empty.
Definition: IDataProviderSvc.h:508
IDataProviderSvc::Status
Status
Status code definitions.
Definition: IDataProviderSvc.h:488
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
DeclareInterfaceID
#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
IInterface
Definition of the basic interface.
Definition: IInterface.h:277
IRegistry
The IRegistry represents the entry door to the environment any data object residing in a transient da...
Definition: IRegistry.h:22
IDataProviderSvc::INVALID_PARENT
Pointer to parent object is not valid.
Definition: IDataProviderSvc.h:500
IDataProviderSvc::INVALID_OBJECT
Object pointer is invalid.
Definition: IDataProviderSvc.h:498
IDataProviderSvc::INVALID_OBJ_PATH
Invalid path from root to object request failed.
Definition: IDataProviderSvc.h:494
IOpaqueAddress
Opaque address interface definition.
Definition: IOpaqueAddress.h:23
GAUDI_API
#define GAUDI_API
Definition: Kernel.h:110
DataObject
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:30
IInterface.h