File: BonoboStream.h

package info (click to toggle)
gpdf 2.8.2-1.2sarge6
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 7,220 kB
  • ctags: 6,624
  • sloc: cpp: 61,071; ansic: 12,100; sh: 6,017; xml: 2,299; makefile: 589
file content (58 lines) | stat: -rw-r--r-- 1,532 bytes parent folder | download
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 */