00001 // 00002 // CascadeFileStream.h - header file for class CascadeFileStream 00003 // 00004 // Copyright (c) 2002, Roku, LLC. All rights reserved. 00005 // 00008 00009 #ifndef _ROKU_INCLUDE_CASCADE_UTIL_CASCADEFILESTREAM_H 00010 #define _ROKU_INCLUDE_CASCADE_UTIL_CASCADEFILESTREAM_H 00011 00012 #include <cascade/util/CascadeStream.h> 00013 #include <cascade/util/CascadeFile.h> 00014 00055 class CascadeFileStream : public CascadeStream 00056 { 00057 public: 00058 CascadeFileStream(); 00062 virtual ~CascadeFileStream(); 00067 public: 00068 virtual bool Open(CascadeFile & file); 00077 virtual bool Open(const CascadeString & url); 00087 virtual bool IsOpen(); 00093 virtual void Close(); 00097 virtual u32 GetBlockSize(); 00106 public: // overrides from class CascadeStream 00107 virtual u64 GetSize(); 00108 virtual u64 GetPosition(); 00109 virtual bool SeekToPosition(u64 nPosition); 00110 virtual u32 ReadBytes(u32 nBytes, void * pBuff); 00111 private: 00112 class FileStream; 00113 FileStream * m_pFileStream; 00114 }; 00115 00116 #endif // #ifndef _ROKU_INCLUDE_CASCADE_UTIL_CASCADEFILESTREAM_H 00117 00119 // LOG 00121 // 18-Dec-03 dwoodward created 00122 // 13-May-05 dwoodward added overloaded Open() with a url as the parameter