![]() |
|
|
Generated: 8 Jan 2009 |
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