00001 #ifndef CLASSLIB_DECOMPRESSOR_H
00002 # define CLASSLIB_DECOMPRESSOR_H
00003
00004
00005
00006 # include "classlib/sysapi/system.h"
00007 # include "classlib/iobase/IOBuffer.h"
00008
00009 namespace lat {
00010
00011
00012
00013
00014
00015
00016
00046 class Decompressor
00047 {
00048 public:
00049 virtual ~Decompressor (void);
00050
00051
00052 virtual void reset (void) = 0;
00053 virtual void end (void) = 0;
00054
00055
00056 virtual bool more (void) const = 0;
00057 virtual void input (const void *buffer, IOSize length) = 0;
00058 virtual IOSize rest (void) const = 0;
00059
00060
00061 virtual bool finished (void) const = 0;
00062 virtual IOSize decompress (void *into, IOSize length) = 0;
00063
00064
00065 virtual unsigned checksum (void) const = 0;
00066 virtual IOOffset in (void) const = 0;
00067 virtual IOOffset out (void) const = 0;
00068 };
00069
00070
00071
00072
00073 }
00074 #endif // CLASSLIB_DECOMPRESSOR_H