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

DataSvc.h

Go to the documentation of this file.
00001 // $Header: /nfs/slac/g/glast/ground/cvs/GaudiKernel/GaudiKernel/DataSvc.h,v 1.1.1.1 2001/04/18 18:14:18 tlindner Exp $
00002 #ifndef GAUDIKERNEL_DATASVC_H
00003 #define GAUDIKERNEL_DATASVC_H
00004 
00005 // Include files
00006 #include "GaudiKernel/Service.h"
00007 #include "GaudiKernel/IDataManagerSvc.h"
00008 #include "GaudiKernel/IDataProviderSvc.h"
00009 #include "GaudiKernel/TransientStore.h"
00010 #include "GaudiKernel/DataStoreItem.h"
00011 
00012 // Forward declarations
00013 // Generic registry entry
00014 class RegistryEntry;
00015 // Generic address
00016 class IOpaqueAddress;
00017 // Generic interface to data object class
00018 class DataObject;
00019 // Data store agent
00020 class IDataStoreAgent;
00021 // Service factory
00022 template <class TYPE> class SvcFactory;
00023 
00032 class DataSvc  : public Service,
00033                  virtual public IDataProviderSvc, 
00034                  virtual public IDataManagerSvc   {
00036   friend class SvcFactory<DataSvc>;
00037 
00038 public:
00040   typedef std::vector<DataStoreItem> LoadItems;
00041 
00043   virtual CLID rootEventCLID() const;
00044   virtual std::string rootEventName() const;
00045 
00046 protected:
00048   TransientStore  m_root;
00050   int             m_rootEventCLID;
00052   std::string m_rootEventName;
00054   IConversionSvc* m_dataLoader;
00056   LoadItems       m_preLoads;
00057 public:
00059   virtual StatusCode clearSubTree( const std::string& sub_tree_path );
00060 
00062   virtual StatusCode clearSubTree( DataObject* pObject );
00063 
00065   virtual StatusCode clearStore();
00066 
00068   virtual StatusCode traverseSubTree( const std::string& sub_tree_path, IDataStoreAgent* pAgent );
00069 
00071   virtual StatusCode traverseSubTree( DataObject* pObject, IDataStoreAgent* pAgent );
00072 
00074   virtual StatusCode traverseTree( IDataStoreAgent* pAgent );
00075 
00077   virtual StatusCode setRoot( const std::string& root_name, DataObject* pRootObj );
00078 
00080   virtual StatusCode setRoot( const std::string& root_path, IOpaqueAddress* pRootAddr );
00081 
00083   virtual StatusCode setDataLoader( IConversionSvc* svc );
00084 
00086   virtual StatusCode addPreLoadItem( const DataStoreItem& item );
00087 
00089   virtual StatusCode addPreLoadItem( const std::string& itemPath );
00090 
00092   virtual StatusCode removePreLoadItem( const DataStoreItem& item );
00093 
00095   virtual StatusCode removePreLoadItem( const std::string& itemPath );
00096 
00098   virtual StatusCode resetPreLoad();
00099 
00106   virtual StatusCode preLoad( int depth, int load_depth, DataObject* pObject );
00107 
00109   virtual StatusCode preLoad();
00110 
00112   virtual StatusCode registerObject( const std::string& fullPath, DataObject* pObject );
00113 
00115   virtual StatusCode registerObject( const std::string& parentPath, const std::string& objPath, DataObject* pObject );
00116 
00118   virtual StatusCode registerObject( const std::string& parentPath, int item, DataObject* pObject );
00119 
00121   virtual StatusCode registerObject( DataObject* parentObj, const std::string& objPath, DataObject* pObject );
00122 
00124   virtual StatusCode registerObject( DataObject* parentObj, int item, DataObject* pObject );
00125 
00127   virtual StatusCode unregisterObject( const std::string& fullPath );
00128 
00130   virtual StatusCode unregisterObject( const std::string& parentPath, const std::string& objectPath );
00131 
00133   virtual StatusCode unregisterObject( const std::string& parentPath, int item );
00134 
00136   virtual StatusCode unregisterObject( DataObject* pObject );
00137 
00139   virtual StatusCode unregisterObject( DataObject* pObject, const std::string& objectPath );
00140 
00142   virtual StatusCode unregisterObject( DataObject* pObject, int item );
00143 
00145   virtual StatusCode retrieveObject( IDataDirectory* pDirectory, const std::string& path, DataObject*& pObject );
00146 
00148   virtual StatusCode retrieveObject( const std::string& fullPath, DataObject*& pObject );
00149 
00151   virtual StatusCode retrieveObject( const std::string& parentPath, const std::string& objPath, DataObject*& pObject );
00152 
00154   virtual StatusCode retrieveObject( const std::string& parentPath, int item, DataObject*& pObject );
00155 
00157   virtual StatusCode retrieveObject( DataObject* parentObj, const std::string& objPath, DataObject*& pObject );
00158 
00160   virtual StatusCode retrieveObject( DataObject* parentObj, int item, DataObject*& pObject );
00161 
00163   virtual StatusCode findObject( const std::string& fullPath, DataObject*& pObject );
00164 
00166   virtual StatusCode findObject( IDataDirectory* pDirectory, const std::string& path, DataObject*& pObject );
00167 
00169   virtual StatusCode findObject( const std::string& parentPath, const std::string& objPath, DataObject*& pObject );
00170 
00172   virtual StatusCode findObject( const std::string& parentPath, int item, DataObject*& pObject );
00173 
00175   virtual StatusCode findObject( DataObject* parentObj, const std::string& objPath, DataObject*& pObject );
00176 
00178   virtual StatusCode findObject( DataObject* parentObj, int item, DataObject*& pObject );
00179 
00181   virtual StatusCode updateRegistryEntry( IOpaqueAddress* pAddress, DataObject* pObj );
00182 
00184   virtual StatusCode linkObject( IDataDirectory* from, const std::string& objPath, DataObject* to );
00185 
00187   virtual StatusCode linkObject( const std::string& fromPath, const std::string& objPath, DataObject* to );
00188 
00190   virtual StatusCode linkObject( DataObject* from, const std::string& objPath, DataObject* to );
00191 
00193   virtual StatusCode linkObject( const std::string& fullPath, DataObject* to );
00194 
00196   virtual StatusCode unlinkObject( IDataDirectory* from, const std::string& objPath );
00197 
00199   virtual StatusCode unlinkObject( const std::string& fromPath, const std::string& objPath );
00200 
00202   virtual StatusCode unlinkObject( DataObject* fromObj, const std::string& objPath );
00203 
00205   virtual StatusCode unlinkObject( const std::string& fullPath );
00206 
00208   virtual StatusCode updateObject(IDataDirectory* pDirectory );
00209 
00211   virtual StatusCode updateObject( const std::string& updatePath );
00212 
00214   virtual StatusCode updateObject( DataObject* toUpdate );
00215 
00217   virtual StatusCode updateObject( const std::string& parentPath, const std::string& updatePath );
00218 
00220   virtual StatusCode updateObject( DataObject* pParent, const std::string& updatePath );
00221 
00223   virtual StatusCode queryInterface( const IID& riid, void** ppvUnknown );
00224 
00226   virtual StatusCode initialize();
00227 
00229   virtual StatusCode finalize();
00230 
00231 protected:
00233   DataSvc( const std::string& name, ISvcLocator* svc );
00234 
00236   virtual ~DataSvc();
00237 
00239   bool checkRoot()    {
00240     return m_root.isValid();
00241   }
00242 
00244   StatusCode retrieveEntry( RegistryEntry* pNode,const std::string& path, RegistryEntry*& pEntry );
00245 
00247   virtual StatusCode loadObject( IDataDirectory* pNode );
00248 };
00249 #endif // GAUDIKERNEL_DATASVC_H
00250 

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