| # Gaudi Framework, version v21r7 |

Home |  | Generated: 22 Jan 2010

# 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/IInterface.h"
    00007
    00008 // C/C++ include files
    00009 #include <string>
    00010
    00011 // Forward declarations
    00012 class DataObject;
    00013 class IOpaqueAddress;
    00014 class IRegistry;
    00015 class DataStoreItem;
    00016
    00046 class GAUDI_API IDataProviderSvc: virtual public IInterface {
    00047 public:
    00049   DeclareInterfaceID(IDataProviderSvc,3,0);
    00050
    00051   enum { SEPARATOR = '/' };
    00052
    00060   virtual StatusCode registerObject(const std::string& fullPath,
    00061                                     DataObject* pObject) = 0;
    00062
    00071   virtual StatusCode registerObject(const std::string& parentPath,
    00072                                     const std::string& objectPath,
    00073                                     DataObject* pObject) = 0;
    00074
    00083   virtual StatusCode registerObject(const std::string& parentPath,
    00084                                     int item,
    00085                                     DataObject* pObject) = 0;
    00086
    00095   virtual StatusCode registerObject(DataObject* parentObj,
    00096                                     const std::string& objectPath,
    00097                                     DataObject* pObject) = 0;
    00098
    00107   virtual StatusCode registerObject(DataObject* parentObj,
    00108                                     int item,
    00109                                     DataObject* pObject) = 0;
    00110
    00124   virtual StatusCode unregisterObject(const std::string& fullPath) = 0;
    00125
    00140   virtual StatusCode unregisterObject(const std::string& parentPath,
    00141                                       const std::string& objPath) = 0;
    00142
    00157   virtual StatusCode unregisterObject(const std::string& parentPath,
    00158                                       int item) = 0;
    00159
    00173   virtual StatusCode unregisterObject(DataObject* pObject) = 0;
    00174
    00189   virtual StatusCode unregisterObject(DataObject* pParent,
    00190                                       const std::string& objPath) = 0;
    00191
    00206   virtual StatusCode unregisterObject(DataObject* pParent, int item) = 0;
    00207
    00218   virtual StatusCode retrieveObject(IRegistry* pDirectory,
    00219                                     const std::string& path,
    00220                                     DataObject*& pObject) = 0;
    00221
    00230   virtual StatusCode retrieveObject(const std::string& fullPath,
    00231                                     DataObject*& pObject) = 0;
    00232
    00243   virtual StatusCode retrieveObject(const std::string& parentPath,
    00244                                     const std::string& objectPath,
    00245                                     DataObject*& pObject) = 0;
    00246
    00257   virtual StatusCode retrieveObject(const std::string& parentPath,
    00258                                     int item, DataObject*& pObject) = 0;
    00259
    00270   virtual StatusCode retrieveObject(DataObject* parentObj,
    00271                                     const std::string& objectPath,
    00272                                     DataObject*& pObject) = 0;
    00273
    00284   virtual StatusCode retrieveObject(DataObject* parentObj,
    00285                                     int item,
    00286                                     DataObject*& pObject) = 0;
    00287
    00297   virtual StatusCode findObject(IRegistry* pDirectory,
    00298                                 const std::string& path,
    00299                                 DataObject*& pObject) = 0;
    00300
    00308   virtual StatusCode findObject(const std::string& fullPath,
    00309                                 DataObject*& pObject) = 0;
    00310
    00320   virtual StatusCode findObject(const std::string& parentPath,
    00321                                 const std::string& objectPath,
    00322                                 DataObject*& pObject) = 0;
    00323
    00332   virtual StatusCode findObject(const std::string& parentPath,
    00333                                 int item,
    00334                                 DataObject*& pObject) = 0;
    00335
    00345   virtual StatusCode findObject(DataObject* pNode,
    00346                                 const std::string& objectPath,
    00347                                 DataObject*& pObject) = 0;
    00348
    00357   virtual StatusCode findObject(DataObject* parentObj,
    00358                                 int item,
    00359                                 DataObject*& pObject) = 0;
    00360
    00366   virtual StatusCode updateObject(IRegistry* pDirectory) = 0;
    00367
    00374   virtual StatusCode updateObject(const std::string& fullPath) = 0;
    00375
    00382   virtual StatusCode updateObject(DataObject* toUpdate) = 0;
    00383
    00392   virtual StatusCode updateObject(const std::string& parentPath,
    00393                                   const std::string& updatePath) = 0;
    00394
    00403   virtual StatusCode updateObject(DataObject* pParent,
    00404                                   const std::string& updatePath) = 0;
    00405
    00410   virtual StatusCode addPreLoadItem(const DataStoreItem& item) = 0;
    00411
    00417   virtual StatusCode addPreLoadItem(const std::string& itemPath) = 0;
    00418
    00423   virtual StatusCode removePreLoadItem(const DataStoreItem& item) = 0;
    00424
    00429   virtual StatusCode removePreLoadItem(const std::string& itemPath) = 0;
    00430
    00434   virtual StatusCode resetPreLoad() = 0;
    00435
    00439   virtual StatusCode preLoad() = 0;
    00440
    00449   virtual StatusCode linkObject(IRegistry* from,
    00450                                 const std::string& objPath,
    00451                                 DataObject* toObj) = 0;
    00452
    00461   virtual StatusCode linkObject(const std::string& fromPath,
    00462                                 const std::string& objPath,
    00463                                 DataObject* toObj) = 0;
    00464
    00473   virtual StatusCode linkObject(DataObject* fromObj,
    00474                                 const std::string& objPath,
    00475                                 DataObject* toObj) = 0;
    00476
    00484   virtual StatusCode linkObject(const std::string& fullPath,
    00485                                 DataObject* toObj) = 0;
    00486
    00495   virtual StatusCode unlinkObject(IRegistry* from,
    00496                                   const std::string& objPath) = 0;
    00497
    00506   virtual StatusCode unlinkObject(const std::string& fromPath,
    00507                                   const std::string& objPath) = 0;
    00508
    00517   virtual StatusCode unlinkObject(DataObject* fromObj,
    00518                                   const std::string& objPath) = 0;
    00519
    00527   virtual StatusCode unlinkObject(const std::string& fullPath) = 0;
    00528
    00530   enum Status  {
    00532     IDataProviderSvc_NO_ERROR = 1,
    00534     DOUBL_OBJ_PATH,
    00536     INVALID_OBJ_PATH,
    00538     INVALID_ROOT,
    00540     INVALID_OBJECT,
    00542     INVALID_PARENT,
    00544     OBJ_NOT_LOADED,
    00546     NO_DATA_LOADER,
    00548     INVALID_OBJ_ADDR,
    00550     DIR_NOT_EMPTY,
    00552     NO_MORE_LEVELS,
    00554     NO_ACCESS,
    00556     LAST
    00557   };
    00558 };
    00559
    00560 #endif // GAUDIKERNEL_IDATAPROVIDERSVC_H