00001 00034 #ifndef LL_LLMEMORYSTREAM_H 00035 #define LL_LLMEMORYSTREAM_H 00036 00044 #include <iostream> 00045 00054 class LLMemoryStreamBuf : public std::streambuf 00055 { 00056 public: 00057 LLMemoryStreamBuf(const U8* start, S32 length); 00058 ~LLMemoryStreamBuf(); 00059 00060 void reset(const U8* start, S32 length); 00061 00062 protected: 00063 int underflow(); 00064 //std::streamsize xsgetn(char* dest, std::streamsize n); 00065 }; 00066 00067 00076 class LLMemoryStream : public std::istream 00077 { 00078 public: 00079 LLMemoryStream(const U8* start, S32 length); 00080 ~LLMemoryStream(); 00081 00082 protected: 00083 LLMemoryStreamBuf mStreamBuf; 00084 }; 00085 00086 #endif // LL_LLMEMORYSTREAM_H