00001
00002
00003
00004
00005
00006
00007
00008 #ifndef _SK_IO_ABSTRACTINPUTSTREAM_
00009 #define _SK_IO_ABSTRACTINPUTSTREAM_
00010
00011 #include <sk/io/InputStream.h>
00012
00013 namespace sk {
00014 namespace io {
00019 class AbstractInputStream
00020 : public virtual sk::io::InputStream
00021 {
00022 public:
00023
00024 const sk::util::Class getClass() const;
00025
00026
00027 virtual int read(char* buffer, int offset, int length) = 0;
00028 char read();
00029 std::vector<char> read(int number);
00030 std::vector<char>& read(std::vector<char>& buffer, int number);
00031 int skip(int number);
00032 long long available() const;
00033 bool markSupported() const;
00034 void mark(int readlimit);
00035 void reset();
00036
00037 protected:
00038 int filterReadEvents(int n);
00039 };
00040 }
00041 }
00042
00043 #endif