00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00023 #ifndef _CLASS_FILTERINPUTSTREAM_H
00024 #define _CLASS_FILTERINPUTSTREAM_H
00025
00026 #ifdef __cplusplus
00027
00028 #include "beecrypt/c++/mutex.h"
00029 using beecrypt::mutex;
00030 #include "beecrypt/c++/io/InputStream.h"
00031 using beecrypt::io::InputStream;
00032
00033 namespace beecrypt {
00034 namespace io {
00037 class BEECRYPTCXXAPI FilterInputStream : public InputStream
00038 {
00039 private:
00040 mutex _lock;
00041
00042 protected:
00043 InputStream& in;
00044
00045 public:
00046 FilterInputStream(InputStream& in);
00047 virtual ~FilterInputStream();
00048
00049 virtual off_t available() throw (IOException);
00050 virtual void close() throw (IOException);
00051 virtual void mark(off_t) throw ();
00052 virtual bool markSupported() throw ();
00053 virtual int read() throw (IOException);
00054 virtual int read(byte* data, size_t offset, size_t length) throw (IOException);
00055 virtual int read(bytearray& b) throw (IOException);
00056 virtual void reset() throw (IOException);
00057 virtual off_t skip(off_t) throw (IOException);
00058 };
00059 }
00060 }
00061
00062 #endif
00063
00064 #endif