00001
00002 #ifndef GAUDIKERNEL_IDATAMANAGERSVC_H
00003 #define GAUDIKERNEL_IDATAMANAGERSVC_H
00004
00005
00006 #include <string>
00007 #include <vector>
00008 #include "GaudiKernel/ClassID.h"
00009 #include "GaudiKernel/IInterface.h"
00010
00011
00012
00013 class DataObject;
00014
00015 class IConversionSvc;
00016
00017 class IDataStoreAgent;
00018
00019 class IOpaqueAddress;
00020
00021 class IRegistry;
00022
00023
00024
00025 static const InterfaceID IID_IDataManagerSvc("IDataManagerSvc", 1 , 0);
00026
00027
00049 class IDataManagerSvc : virtual public IInterface {
00050 public:
00052 static const InterfaceID& interfaceID() { return IID_IDataManagerSvc; }
00053
00055 virtual CLID rootCLID() const = 0;
00056
00058 virtual std::string rootName() const = 0;
00059
00065 virtual StatusCode setDataLoader( IConversionSvc* svc ) = 0;
00066
00073 virtual StatusCode objectParent( const DataObject* pObject,
00074 IRegistry*& refpParent) = 0;
00075
00082 virtual StatusCode objectParent( const IRegistry* pRegistry,
00083 IRegistry*& refpParent) = 0;
00084
00093 virtual StatusCode objectLeaves( const DataObject* pObject,
00094 std::vector<IRegistry*>& refLeaves) = 0;
00095
00104 virtual StatusCode objectLeaves( const IRegistry* pRegistry,
00105 std::vector<IRegistry*>& refLeaves) = 0;
00106
00111 virtual StatusCode clearSubTree ( const std::string& sub_path ) = 0;
00112
00118 virtual StatusCode clearSubTree( DataObject* pObject ) = 0;
00119
00123 virtual StatusCode clearStore() = 0;
00124
00129 virtual StatusCode traverseSubTree( const std::string& sub_path,
00130 IDataStoreAgent* pAgent ) = 0;
00131
00138 virtual StatusCode traverseSubTree( DataObject* pObject,
00139 IDataStoreAgent* pAgent ) = 0;
00140
00144 virtual StatusCode traverseTree( IDataStoreAgent* pAgent) = 0;
00145
00152 virtual StatusCode setRoot( const std::string& root_name,
00153 DataObject* pObject ) = 0;
00154
00161 virtual StatusCode setRoot( const std::string& root_path,
00162 IOpaqueAddress* pRootAddr) = 0;
00163
00171 virtual StatusCode registerAddress( const std::string& fullPath,
00172 IOpaqueAddress* pAddress) = 0;
00173
00182 virtual StatusCode registerAddress( DataObject* parentObj,
00183 const std::string& objectPath,
00184 IOpaqueAddress* pAddress) = 0;
00185
00194 virtual StatusCode registerAddress( IRegistry* parentObj,
00195 const std::string& objectPath,
00196 IOpaqueAddress* pAddress) = 0;
00197
00203 virtual StatusCode unregisterAddress(const std::string& fullPath) = 0;
00204
00212 virtual StatusCode unregisterAddress(DataObject* pParent,
00213 const std::string& objPath) = 0;
00214
00222 virtual StatusCode unregisterAddress(IRegistry* pParent, const std::string& objPath) = 0;
00223 };
00224
00225 #endif // GAUDIKERNEL_IDATAMANAGERSVC_H