Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

IDataProviderSvc.h

Go to the documentation of this file.
00001 // $Header: /nfs/slac/g/glast/ground/cvs/GaudiKernel/GaudiKernel/IDataProviderSvc.h,v 1.1.1.1 2001/04/18 18:14:18 tlindner Exp $
00002 #ifndef GAUDIKERNEL_IDATAPROVIDERSVC_H
00003 #define GAUDIKERNEL_IDATAPROVIDERSVC_H
00004 
00005 // C/C++ include files
00006 #include <string>
00007 // Framework include files
00008 #include "GaudiKernel/Kernel.h"
00009 #include "GaudiKernel/IInterface.h"
00010 
00011 // Forward declarations
00012 class DataObject;
00013 class IOpaqueAddress;
00014 class IDataDirectory;
00015 class DataStoreItem;
00016 
00017 // Declaration of the interface ID ( interface id, major version, minor version) 
00018 static const InterfaceID IID_IDataProviderSvc(6, 1 , 0); 
00019 
00020 
00044 class IDataProviderSvc  : virtual public IInterface         {
00045   public:
00047   static const InterfaceID& interfaceID() { return IID_IDataProviderSvc; }
00048 
00056   virtual StatusCode registerObject(const std::string& fullPath, DataObject* pObject) = 0;
00057 
00066   virtual StatusCode registerObject(const std::string& parentPath, const std::string& objectPath, DataObject* pObject) = 0;
00067 
00076   virtual StatusCode registerObject(const std::string& parentPath, int item, DataObject* pObject) = 0;
00077 
00086   virtual StatusCode registerObject(DataObject* parentObj, const std::string& objectPath, DataObject* pObject) = 0;
00087 
00096   virtual StatusCode registerObject(DataObject* parentObj, int item, DataObject* pObject) = 0;
00097 
00104   virtual StatusCode unregisterObject(const std::string& fullPath) = 0;
00105 
00114   virtual StatusCode unregisterObject(const std::string& parentPath, const std::string& objPath) = 0;
00115 
00124   virtual StatusCode unregisterObject(const std::string& parentPath, int item) = 0;
00125 
00133   virtual StatusCode unregisterObject(DataObject* pObject) = 0;
00134 
00143   virtual StatusCode unregisterObject(DataObject* pParent, const std::string& objPath) = 0;
00144 
00153   virtual StatusCode unregisterObject(DataObject* pParent, int item) = 0;
00154 
00165   virtual StatusCode retrieveObject(IDataDirectory* pDirectory, const std::string& path, DataObject*& pObject) = 0;
00166 
00175   virtual StatusCode retrieveObject(const std::string& fullPath, DataObject*& pObject) = 0;
00176 
00187   virtual StatusCode retrieveObject(const std::string& parentPath, const std::string& objectPath, DataObject*& pObject) = 0;
00188 
00199   virtual StatusCode retrieveObject(const std::string& parentPath, int item, DataObject*& pObject) = 0;
00200 
00211   virtual StatusCode retrieveObject(DataObject* parentObj, const std::string& objectPath, DataObject*& pObject) = 0;
00212  
00223   virtual StatusCode retrieveObject(DataObject* parentObj, int item, DataObject*& pObject) = 0;
00224 
00234   virtual StatusCode findObject(IDataDirectory* pDirectory, const std::string& path, DataObject*& pObject) = 0;
00235 
00243   virtual StatusCode findObject(const std::string& fullPath, DataObject*& pObject) = 0;
00244  
00254   virtual StatusCode findObject(const std::string& parentPath, const std::string& objectPath, DataObject*& pObject) = 0;
00255 
00264   virtual StatusCode findObject(const std::string& parentPath, int item, DataObject*& pObject) = 0;
00265 
00275   virtual StatusCode findObject(DataObject* pNode, const std::string& objectPath, DataObject*& pObject) = 0;
00276 
00285   virtual StatusCode findObject(DataObject* parentObj, int item, DataObject*& pObject) = 0;
00286 
00292   virtual StatusCode updateObject(IDataDirectory* pDirectory) = 0;
00293 
00300   virtual StatusCode updateObject(const std::string& fullPath) = 0;
00301 
00308   virtual StatusCode updateObject(DataObject* toUpdate) = 0;
00309 
00317   virtual StatusCode updateObject(const std::string& parentPath, const std::string& updatePath) = 0;
00318 
00326   virtual StatusCode updateObject(DataObject* pParent, const std::string& updatePath) = 0;
00327 
00335   virtual StatusCode updateRegistryEntry(IOpaqueAddress* pAddress, DataObject* pObj) = 0;
00336 
00341   virtual StatusCode addPreLoadItem(const DataStoreItem& item) = 0;
00342 
00347   virtual StatusCode addPreLoadItem(const std::string& itemPath) = 0;
00348 
00353   virtual StatusCode removePreLoadItem(const DataStoreItem& item) = 0;
00354 
00359   virtual StatusCode removePreLoadItem(const std::string& itemPath) = 0;
00360 
00364   virtual StatusCode resetPreLoad() = 0;
00365 
00369   virtual StatusCode preLoad() = 0;
00370 
00379   virtual StatusCode linkObject(IDataDirectory* from, const std::string& objPath, DataObject* toObj) = 0;
00380 
00389   virtual StatusCode linkObject(const std::string& fromPath, const std::string& objPath, DataObject* toObj) = 0;
00390 
00399   virtual StatusCode linkObject(DataObject* fromObj, const std::string& objPath, DataObject* toObj) = 0;
00400 
00408   virtual StatusCode linkObject(const std::string& fullPath, DataObject* toObj) = 0;
00409 
00417   virtual StatusCode unlinkObject(IDataDirectory* from, const std::string& objPath) = 0;
00418 
00426   virtual StatusCode unlinkObject(const std::string& fromPath, const std::string& objPath) = 0;
00427 
00435   virtual StatusCode unlinkObject(DataObject* fromObj, const std::string& objPath) = 0;
00436 
00443   virtual StatusCode unlinkObject(const std::string& fullPath) = 0;
00444 
00446   enum Status  {
00448     IID_IDataProviderSvc_NO_ERROR = 1,
00450     DOUBL_OBJ_PATH,
00452     INVALID_OBJ_PATH,
00454     INVALID_ROOT,
00456     INVALID_OBJECT,
00458     INVALID_PARENT,
00460     OBJ_NOT_LOADED,
00462     NO_DATA_LOADER,
00464     INVALID_OBJ_ADDR,
00466     DIR_NOT_EMPTY,
00468     NO_MORE_LEVELS,
00470     LAST
00471   };
00472 };
00473 
00474 #endif // GAUDIKERNEL_IDATAPROVIDERSVC_H

Generated at Wed Nov 21 12:22:03 2001 by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000