Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/pdf/xpdf/GnomeVFSStream.h
diff options
context:
space:
mode:
authorMartin Kretzschmar <mkretzschmar@src.gnome.org>2003-03-02 15:02:20 (GMT)
committer Martin Kretzschmar <mkretzschmar@src.gnome.org>2003-03-02 15:02:20 (GMT)
commit465028163ee3576380d79de4d1679eeaa833b8c4 (patch)
tree7cfe3c91e927f2bbc5bf61d5a42b5daa4f311787 /pdf/xpdf/GnomeVFSStream.h
parent8f31a8727ebd8e58b2f31781d9de7760473665e0 (diff)
new class, just what the name says, uses GnomeVFSStream for loading
* xpdf/nautilus-pdf-property-page.cc, xpdf/nautilus-pdf-property-page.h: new class, just what the name says, uses GnomeVFSStream for loading PDFDocs. * xpdf/GnomeVFSStream.cc, xpdf/GnomeVFSStream.h: BaseStream implementation based on (synchronous) gnome-vfs calls. * xpdf/BonoboStream.cc, xpdf/BonoboStream.h: coding style fixage, include only what's needed. * xpdf/Makefile.am (gnome_pdf_viewer_SOURCES): also compile GnomeVFSStream.{cc,h}, nautilus-pdf-property-page.{cc,h} * xpdf/GNOME_PDF.server.in.in: add stanza for the Property Page. * xpdf/bonobo-application-x-pdf.cc: clean up a bit (gpdf_factory): now we produce the Property Page, too. * xpdf/gpdf-control.cc: include time.h for strftime, mktime.
Diffstat (limited to 'pdf/xpdf/GnomeVFSStream.h')
-rw-r--r--pdf/xpdf/GnomeVFSStream.h58
1 files changed, 58 insertions, 0 deletions
diff --git a/pdf/xpdf/GnomeVFSStream.h b/pdf/xpdf/GnomeVFSStream.h
new file mode 100644
index 0000000..a02d288
--- /dev/null
+++ b/pdf/xpdf/GnomeVFSStream.h
@@ -0,0 +1,58 @@
+//========================================================================
+//
+// GnomeVFSStream.cc
+//
+// Copyright 1996-2002 Glyph & Cog, LLC
+// Copyright 2003 Martin Kretzschmar
+//
+//========================================================================
+
+#ifndef GNOME_VFS_STREAM_H
+#define GNOME_VFS_STREAM_H
+
+#include "gpdf-g-switch.h"
+# include <libgnomevfs/gnome-vfs-handle.h>
+#include "gpdf-g-switch.h"
+#include "Object.h"
+#include "Stream.h"
+
+#define gnomeVFSStreamBufSize fileStreamBufSize
+
+class GnomeVFSStream: public BaseStream {
+public:
+
+ GnomeVFSStream(GnomeVFSHandle *handleA, Guint startA, GBool limitedA,
+ Guint lengthA, Object *dictA);
+ virtual ~GnomeVFSStream();
+ 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();
+
+ GnomeVFSHandle *handle;
+ Guint start;
+ GBool limited;
+ Guint length;
+ char buf[gnomeVFSStreamBufSize];
+ char *bufPtr;
+ char *bufEnd;
+ Guint bufPos;
+ int savePos;
+ GBool saved;
+};
+
+#endif /* GNOME_VFS_STREAM_H */