00001 00020 #ifndef ARXX_LOCALARCHIVECHANNEL_H 00021 #define ARXX_LOCALARCHIVECHANNEL_H 00022 00023 #include <fstream> 00024 00025 #include "../Include/DataChannel.h" 00026 00033 namespace Arxx 00034 { 00038 class LocalArchiveChannel : public Arxx::DataChannel 00039 { 00040 public: 00049 LocalArchiveChannel(const Arxx::URI & URI); 00050 00056 virtual ~LocalArchiveChannel(void); 00057 00063 std::istream & GetStream(void); 00064 00072 void vMarkDataOffset(void); 00073 00081 virtual bool bFetchData(const Arxx::URI & URI, Arxx::Buffer & Buffer, Arxx::FetchStatus & FetchStatus); 00082 protected: 00088 void vOnUnreferenced(void); 00089 private: 00090 00096 std::ifstream m_IStream; 00097 00103 Arxx::u4byte m_u4DataOffset; 00104 }; 00105 } 00106 00107 #endif