// Reset stream to beginning.
virtual void reset() = 0;
+ // Close down the stream.
+ virtual void close();
+
// Get next char from stream.
virtual int getChar() = 0;
virtual void setPos(int pos1) = 0;
// Get PostScript command for the filter(s).
- virtual GString *getPSFilter(char *indent);
+ virtual GString *getPSFilter(const char *indent);
// Does this stream type potentially contain non-printable chars?
virtual GBool isBinary(GBool last = gTrue) = 0;
private:
- Stream *makeFilter(char *name, Stream *str, Object *params);
+ Stream *makeFilter(const char *name, Stream *str, Object *params);
int ref; // reference count
};
FilterStream(Stream *str);
virtual ~FilterStream();
+ virtual void close();
virtual int getPos() { return str->getPos(); }
virtual void setPos(int pos);
virtual BaseStream *getBaseStream() { return str->getBaseStream(); }
// FileStream
//------------------------------------------------------------------------
+#define fileStreamBufSize 256
+
class FileStream: public BaseStream {
public:
virtual Stream *makeSubStream(int start, int length, Object *dict);
virtual StreamKind getKind() { return strFile; }
virtual void reset();
+ virtual void close();
virtual int getChar()
{ return (bufPtr >= bufEnd && !fillBuf()) ? EOF : (*bufPtr++ & 0xff); }
virtual int lookChar()
FILE *f;
int start;
int length;
- char buf[256];
+ char buf[fileStreamBufSize];
char *bufPtr;
char *bufEnd;
int bufPos;
virtual int getChar()
{ int c = lookChar(); buf = EOF; return c; }
virtual int lookChar();
- virtual GString *getPSFilter(char *indent);
+ virtual GString *getPSFilter(const char *indent);
virtual GBool isBinary(GBool last = gTrue);
private:
virtual int getChar()
{ int ch = lookChar(); ++index; return ch; }
virtual int lookChar();
- virtual GString *getPSFilter(char *indent);
+ virtual GString *getPSFilter(const char *indent);
virtual GBool isBinary(GBool last = gTrue);
private:
virtual int getChar();
virtual int lookChar();
virtual int getRawChar();
- virtual GString *getPSFilter(char *indent);
+ virtual GString *getPSFilter(const char *indent);
virtual GBool isBinary(GBool last = gTrue);
private:
{ return (bufPtr >= bufEnd && !fillBuf()) ? EOF : (*bufPtr++ & 0xff); }
virtual int lookChar()
{ return (bufPtr >= bufEnd && !fillBuf()) ? EOF : (*bufPtr & 0xff); }
- virtual GString *getPSFilter(char *indent);
+ virtual GString *getPSFilter(const char *indent);
virtual GBool isBinary(GBool last = gTrue);
private:
virtual int getChar()
{ int c = lookChar(); buf = EOF; return c; }
virtual int lookChar();
- virtual GString *getPSFilter(char *indent);
+ virtual GString *getPSFilter(const char *indent);
virtual GBool isBinary(GBool last = gTrue);
private:
virtual void reset();
virtual int getChar();
virtual int lookChar();
- virtual GString *getPSFilter(char *indent);
+ virtual GString *getPSFilter(const char *indent);
virtual GBool isBinary(GBool last = gTrue);
Stream *getRawStream() { return str; }
virtual int getChar();
virtual int lookChar();
virtual int getRawChar();
- virtual GString *getPSFilter(char *indent);
+ virtual GString *getPSFilter(const char *indent);
virtual GBool isBinary(GBool last = gTrue);
private:
virtual void reset() {}
virtual int getChar() { return EOF; }
virtual int lookChar() { return EOF; }
- virtual GString *getPSFilter(char *indent) { return NULL; }
- virtual GBool isBinary(GBool last = gTrue) { return gFalse; }
+ virtual GString *getPSFilter(const char *indent) { (void)indent; return NULL; }
+ virtual GBool isBinary(GBool last = gTrue) { (void)last; return gFalse; }
};
//------------------------------------------------------------------------
~FixedLengthEncoder();
virtual StreamKind getKind() { return strWeird; }
virtual void reset();
+ virtual void close();
virtual int getChar();
virtual int lookChar();
- virtual GString *getPSFilter(char *indent) { return NULL; }
- virtual GBool isBinary(GBool last = gTrue) { return gFalse; }
+ virtual GString *getPSFilter(const char *indent) { (void)indent; return NULL; }
+ virtual GBool isBinary(GBool last = gTrue) { (void)last; return gFalse; }
virtual GBool isEncoder() { return gTrue; }
private:
virtual ~ASCII85Encoder();
virtual StreamKind getKind() { return strWeird; }
virtual void reset();
+ virtual void close();
virtual int getChar()
{ return (bufPtr >= bufEnd && !fillBuf()) ? EOF : (*bufPtr++ & 0xff); }
virtual int lookChar()
{ return (bufPtr >= bufEnd && !fillBuf()) ? EOF : (*bufPtr & 0xff); }
- virtual GString *getPSFilter(char *indent) { return NULL; }
- virtual GBool isBinary(GBool last = gTrue) { return gFalse; }
+ virtual GString *getPSFilter(const char *indent) { (void)indent; return NULL; }
+ virtual GBool isBinary(GBool last = gTrue) { (void)last; return gFalse; }
virtual GBool isEncoder() { return gTrue; }
private:
virtual ~RunLengthEncoder();
virtual StreamKind getKind() { return strWeird; }
virtual void reset();
+ virtual void close();
virtual int getChar()
{ return (bufPtr >= bufEnd && !fillBuf()) ? EOF : (*bufPtr++ & 0xff); }
virtual int lookChar()
{ return (bufPtr >= bufEnd && !fillBuf()) ? EOF : (*bufPtr & 0xff); }
- virtual GString *getPSFilter(char *indent) { return NULL; }
- virtual GBool isBinary(GBool last = gTrue) { return gFalse; }
+ virtual GString *getPSFilter(const char *indent) { (void)indent; return NULL; }
+ virtual GBool isBinary(GBool last = gTrue) { (void)last; return gFalse; }
virtual GBool isEncoder() { return gTrue; }
private: