DataRepository.h

Go to the documentation of this file.
00001 
00020 #ifndef ARXX_DATAREPOSITORY_H
00021 #define ARXX_DATAREPOSITORY_H
00022 
00023 #include <map>
00024 
00025 #include "FetchStatus.h"
00026 
00033 namespace Arxx
00034 {
00035     class Buffer;
00036     
00037     class DataChannel;
00038     
00039     class URI;
00040     
00054     class DataRepository
00055     {
00056     public:
00060         DataRepository(void);
00061         
00065         bool bRegisterDataChannel(Arxx::DataChannel * pDataChannel);
00066         
00070         bool bUnregisterDataChannel(Arxx::DataChannel * pDataChannel);
00071         
00079         bool bFetchData(const Arxx::URI & URI, Arxx::Buffer & Buffer, Arxx::FetchStatus & FetchStatus);
00080         
00084         void vReferenceDataChannel(const Arxx::URI & URI);
00085         
00089         void vDereferenceDataChannel(const Arxx::URI & URI);
00090         
00097         bool bHasDataChannel(const Arxx::URI & URI);
00098         
00104         const Arxx::DataChannel * pGetDataChannel(const Arxx::URI & URI);
00105     private:
00110         std::map< Arxx::URI, Arxx::DataChannel * >::iterator iGetDataChannel(const Arxx::URI & URI);
00111         
00115         std::map< Arxx::URI, Arxx::DataChannel * > m_DataChannels;
00116     };
00117     
00118     extern DataRepository Repository;
00119 }
00120 
00121 #endif

Generated on Tue Oct 10 11:33:55 2006 for libarxx by  doxygen 1.4.7