1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
//========================================================================
//
// BonoboStream.h
//
// Author Michael Meeks.
//
// Copyright 1999 Derek B. Noonburg & Michael Meeks.
//
//========================================================================
#ifndef BONOBO_STREAM_H
#define BONOBO_STREAM_H
#include "gpdf-g-switch.h"
# include <bonobo.h>
#include "gpdf-g-switch.h"
#include "Object.h"
#include "Stream.h"
#define bonoboStreamBufSize fileStreamBufSize
class bonoboStream: public BaseStream {
public:
bonoboStream (Bonobo_Stream fA, Guint startA, GBool limitedA,
Guint lengthA, Object *dictA);
virtual ~bonoboStream();
virtual Stream *makeSubStream(Guint startA, GBool limitedA,
Guint lengthA, Object *dictA);
virtual StreamKind getKind() { return strFile; }
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 int getPos() { return bufPos + (bufPtr - buf); }
virtual void setPos(Guint pos, int dir = 0);
virtual GBool isBinary(GBool last = gTrue) { return last; }
virtual Guint getStart() { return start; }
virtual void moveStart(int delta);
private:
GBool fillBuf();
Bonobo_Stream f;
Guint start;
GBool limited;
Guint length;
char buf[bonoboStreamBufSize];
char *bufPtr;
char *bufEnd;
Guint bufPos;
int savePos;
GBool saved;
};
#endif /* BONOBO_STREAM_H */
|