00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef HEADER_SUPERTUX_PHYSFS_IFILE_STREAMBUF_HPP
00018 #define HEADER_SUPERTUX_PHYSFS_IFILE_STREAMBUF_HPP
00019
00020 #include <streambuf>
00021 #include <physfs.h>
00022
00026 class IFileStreambuf : public std::streambuf
00027 {
00028 public:
00029 IFileStreambuf(const std::string& filename);
00030 ~IFileStreambuf();
00031
00032 protected:
00033 virtual int underflow();
00034 virtual pos_type seekoff(off_type pos, std::ios_base::seekdir,
00035 std::ios_base::openmode);
00036 virtual pos_type seekpos(pos_type pos, std::ios_base::openmode);
00037
00038 private:
00039 PHYSFS_file* file;
00040 char buf[1024];
00041
00042 private:
00043 IFileStreambuf(const IFileStreambuf&);
00044 IFileStreambuf& operator=(const IFileStreambuf&);
00045 };
00046
00047 #endif
00048
00049