| # Gaudi Framework, version v20r3
Generated: 24 Nov 2008

# IDataProviderSvc.h

Go to the documentation of this file.

    00001 // $Id: IDataProviderSvc.h,v 1.6 2005/01/19 08:23:16 mato Exp $
    00002 #ifndef GAUDIKERNEL_IDATAPROVIDERSVC_H
    00003 #define GAUDIKERNEL_IDATAPROVIDERSVC_H
    00004
    00005 // Framework include files
    00006 #include "GaudiKernel/Kernel.h"
    00007 #include "GaudiKernel/IInterface.h"
    00008
    00009 // C/C++ include files
    00010 #include <string>
    00011
    00012 // Forward declarations
    00013 class DataObject;
    00014 class IOpaqueAddress;
    00015 class IRegistry;
    00016 class DataStoreItem;
    00017
    00018 // Declaration of the interface ID ( interface id, major version, minor version)
    00019 static const InterfaceID IID_IDataProviderSvc("IDataProviderSvc", 2 , 0);
    00020
    00050 class IDataProviderSvc  : virtual public IInterface         {
    00051   public:
    00053   static const InterfaceID& interfaceID() { return IID_IDataProviderSvc; }
    00054
    00055   enum { SEPARATOR = '/' };
    00056
    00064   virtual StatusCode registerObject(const std::string& fullPath,
    00065                                     DataObject* pObject) = 0;
    00066
    00075   virtual StatusCode registerObject(const std::string& parentPath,
    00076                                     const std::string& objectPath,
    00077                                     DataObject* pObject) = 0;
    00078
    00087   virtual StatusCode registerObject(const std::string& parentPath,
    00088                                     int item,
    00089                                     DataObject* pObject) = 0;
    00090
    00099   virtual StatusCode registerObject(DataObject* parentObj,
    00100                                     const std::string& objectPath,
    00101                                     DataObject* pObject) = 0;
    00102
    00111   virtual StatusCode registerObject(DataObject* parentObj,
    00112                                     int item,
    00113                                     DataObject* pObject) = 0;
    00114
    00128   virtual StatusCode unregisterObject(const std::string& fullPath) = 0;
    00129
    00144   virtual StatusCode unregisterObject(const std::string& parentPath,
    00145                                       const std::string& objPath) = 0;
    00146
    00161   virtual StatusCode unregisterObject(const std::string& parentPath,
    00162                                       int item) = 0;
    00163
    00177   virtual StatusCode unregisterObject(DataObject* pObject) = 0;
    00178
    00193   virtual StatusCode unregisterObject(DataObject* pParent,
    00194                                       const std::string& objPath) = 0;
    00195
    00210   virtual StatusCode unregisterObject(DataObject* pParent, int item) = 0;
    00211
    00222   virtual StatusCode retrieveObject(IRegistry* pDirectory,
    00223                                     const std::string& path,
    00224                                     DataObject*& pObject) = 0;
    00225
    00234   virtual StatusCode retrieveObject(const std::string& fullPath,
    00235                                     DataObject*& pObject) = 0;
    00236
    00247   virtual StatusCode retrieveObject(const std::string& parentPath,
    00248                                     const std::string& objectPath,
    00249                                     DataObject*& pObject) = 0;
    00250
    00261   virtual StatusCode retrieveObject(const std::string& parentPath,
    00262                                     int item, DataObject*& pObject) = 0;
    00263
    00274   virtual StatusCode retrieveObject(DataObject* parentObj,
    00275                                     const std::string& objectPath,
    00276                                     DataObject*& pObject) = 0;
    00277
    00288   virtual StatusCode retrieveObject(DataObject* parentObj,
    00289                                     int item,
    00290                                     DataObject*& pObject) = 0;
    00291
    00301   virtual StatusCode findObject(IRegistry* pDirectory,
    00302                                 const std::string& path,
    00303                                 DataObject*& pObject) = 0;
    00304
    00312   virtual StatusCode findObject(const std::string& fullPath,
    00313                                 DataObject*& pObject) = 0;
    00314
    00324   virtual StatusCode findObject(const std::string& parentPath,
    00325                                 const std::string& objectPath,
    00326                                 DataObject*& pObject) = 0;
    00327
    00336   virtual StatusCode findObject(const std::string& parentPath,
    00337                                 int item,
    00338                                 DataObject*& pObject) = 0;
    00339
    00349   virtual StatusCode findObject(DataObject* pNode,
    00350                                 const std::string& objectPath,
    00351                                 DataObject*& pObject) = 0;
    00352
    00361   virtual StatusCode findObject(DataObject* parentObj,
    00362                                 int item,
    00363                                 DataObject*& pObject) = 0;
    00364
    00370   virtual StatusCode updateObject(IRegistry* pDirectory) = 0;
    00371
    00378   virtual StatusCode updateObject(const std::string& fullPath) = 0;
    00379
    00386   virtual StatusCode updateObject(DataObject* toUpdate) = 0;
    00387
    00396   virtual StatusCode updateObject(const std::string& parentPath,
    00397                                   const std::string& updatePath) = 0;
    00398
    00407   virtual StatusCode updateObject(DataObject* pParent,
    00408                                   const std::string& updatePath) = 0;
    00409
    00414   virtual StatusCode addPreLoadItem(const DataStoreItem& item) = 0;
    00415
    00421   virtual StatusCode addPreLoadItem(const std::string& itemPath) = 0;
    00422
    00427   virtual StatusCode removePreLoadItem(const DataStoreItem& item) = 0;
    00428
    00433   virtual StatusCode removePreLoadItem(const std::string& itemPath) = 0;
    00434
    00438   virtual StatusCode resetPreLoad() = 0;
    00439
    00443   virtual StatusCode preLoad() = 0;
    00444
    00453   virtual StatusCode linkObject(IRegistry* from,
    00454                                 const std::string& objPath,
    00455                                 DataObject* toObj) = 0;
    00456
    00465   virtual StatusCode linkObject(const std::string& fromPath,
    00466                                 const std::string& objPath,
    00467                                 DataObject* toObj) = 0;
    00468
    00477   virtual StatusCode linkObject(DataObject* fromObj,
    00478                                 const std::string& objPath,
    00479                                 DataObject* toObj) = 0;
    00480
    00488   virtual StatusCode linkObject(const std::string& fullPath,
    00489                                 DataObject* toObj) = 0;
    00490
    00499   virtual StatusCode unlinkObject(IRegistry* from,
    00500                                   const std::string& objPath) = 0;
    00501
    00510   virtual StatusCode unlinkObject(const std::string& fromPath,
    00511                                   const std::string& objPath) = 0;
    00512
    00521   virtual StatusCode unlinkObject(DataObject* fromObj,
    00522                                   const std::string& objPath) = 0;
    00523
    00531   virtual StatusCode unlinkObject(const std::string& fullPath) = 0;
    00532
    00534   enum Status  {
    00536     IID_IDataProviderSvc_NO_ERROR = 1,
    00538     DOUBL_OBJ_PATH,
    00540     INVALID_OBJ_PATH,
    00542     INVALID_ROOT,
    00544     INVALID_OBJECT,
    00546     INVALID_PARENT,
    00548     OBJ_NOT_LOADED,
    00550     NO_DATA_LOADER,
    00552     INVALID_OBJ_ADDR,
    00554     DIR_NOT_EMPTY,
    00556     NO_MORE_LEVELS,
    00558     NO_ACCESS,
    00560     LAST
    00561   };
    00562 };
    00563
    00564 #endif // GAUDIKERNEL_IDATAPROVIDERSVC_H