//======================================================================== // // FlateStream.h // // Copyright (C) 2005, Jeff Muizelaar // //======================================================================== #ifndef FLATESTREAM_H #define FLATESTREAM_H #include #ifdef USE_GCC_PRAGMAS #pragma interface #endif #ifdef USE_GCC_PRAGMAS #pragma implementation #endif #include #include #include #ifndef WIN32 #include #endif #include #include #include "goo/gmem.h" #include "goo/gfile.h" #include "poppler-config.h" #include "Error.h" #include "Object.h" #include "Decrypt.h" #include "Stream.h" extern "C" { #include } class FlateStream: public FilterStream { public: FlateStream(Stream *strA, int predictor, int columns, int colors, int bits); virtual ~FlateStream(); virtual StreamKind getKind() { return strFlate; } virtual void reset(); virtual int getChar(); virtual int lookChar(); virtual int getRawChar(); virtual GooString *getPSFilter(int psLevel, char *indent); virtual GBool isBinary(GBool last = gTrue); private: int fill_buffer(void); z_stream d_stream; StreamPredictor *pred; int status; unsigned char in_buf[4096]; unsigned char out_buf[4096]; int out_pos; int out_buf_len; }; #endif