00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #ifndef __io_InputStream__
00037 #define __io_InputStream__
00038
00039 #include <stdnet/system/Abstract>
00040 #include <stdnet/io/IOException>
00041 #include <stdnet/config.h>
00042
00043 namespace stdbase {
00044 namespace io {
00045
00053 class InputStream : public system::Abstract
00054 {
00055 protected:
00056 virtual ~InputStream() {};
00057
00064 virtual void inc() const { this->inc(); }
00065
00072 virtual unsigned dec() const { return this->dec(); }
00073
00074 public:
00079 virtual int
00080 available() throw (IOException) = 0;
00081
00085 virtual void
00086 close() throw (IOException) = 0;
00087
00096 virtual void
00097 mark( int readlimit) = 0;
00098
00107 virtual void
00108 reset() throw (IOException) = 0;
00109
00114 virtual bool
00115 markSupported() = 0;
00116
00120 virtual int
00121 read( byte buffer[], int len) throw (IOException) = 0;
00122
00129 virtual int
00130 read() throw (IOException) = 0;
00131
00137 virtual long
00138 skip( long n ) throw (IOException) = 0;
00139 };
00140
00141 typedef system::reference< InputStream > InputStreamRef;
00142
00143 }
00144 }
00145 #endif // __io_InputStream__