00001 #ifndef CLASSLIB_CHECKED_INPUT_STREAM_H 00002 # define CLASSLIB_CHECKED_INPUT_STREAM_H 00003 00004 //<<<<<< INCLUDES >>>>>> 00005 00006 # include "classlib/sysapi/system.h" 00007 # include "classlib/iotools/FilterInputStream.h" 00008 00009 namespace lat { 00010 //<<<<<< PUBLIC DEFINES >>>>>> 00011 //<<<<<< PUBLIC CONSTANTS >>>>>> 00012 //<<<<<< PUBLIC TYPES >>>>>> 00013 00014 class Checksum; 00015 00016 //<<<<<< PUBLIC VARIABLES >>>>>> 00017 //<<<<<< PUBLIC FUNCTIONS >>>>>> 00018 //<<<<<< CLASS DECLARATIONS >>>>>> 00019 00020 class CheckedInputStream : public FilterInputStream 00021 { 00022 public: 00023 CheckedInputStream (InputStream *input, Checksum *validator); 00024 ~CheckedInputStream (void); 00025 00026 using FilterInputStream::read; 00027 virtual IOSize read (void *into, IOSize n); 00028 virtual IOSize skip (IOSize n); 00029 virtual void reset (void); 00030 virtual Checksum * checksum (void) const; 00031 00032 private: 00033 Checksum *m_checksum; //< Checksum calculator 00034 }; 00035 00036 //<<<<<< INLINE PUBLIC FUNCTIONS >>>>>> 00037 //<<<<<< INLINE MEMBER FUNCTIONS >>>>>> 00038 00039 } // namespace lat 00040 #endif // CLASSLIB_CHECKED_INPUT_STREAM_H