aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2012-07-21 11:37:14 +0200
committerJay Berkenbilt <ejb@ql.org>2012-07-21 15:06:06 +0200
commit15eaed5c52c85dd97ce5bc829817c5535c527207 (patch)
tree9114c410414102d7de50184fb4866f8e881a33cc /include
parent8657c6f00489b5c26fc0c00f2fc91c5682acbe95 (diff)
downloadqpdf-15eaed5c52c85dd97ce5bc829817c5535c527207.tar.zst
Refactor: pull *InputSource out of QPDF
InputSource, FileInputSource, and BufferInputSource are now top-level classes instead of privately nested inside QPDF.
Diffstat (limited to 'include')
-rw-r--r--include/qpdf/BufferInputSource.hh28
-rw-r--r--include/qpdf/FileInputSource.hh32
-rw-r--r--include/qpdf/InputSource.hh35
-rw-r--r--include/qpdf/QPDF.hh75
4 files changed, 96 insertions, 74 deletions
diff --git a/include/qpdf/BufferInputSource.hh b/include/qpdf/BufferInputSource.hh
new file mode 100644
index 00000000..63c14def
--- /dev/null
+++ b/include/qpdf/BufferInputSource.hh
@@ -0,0 +1,28 @@
+#ifndef __QPDF_BUFFERINPUTSOURCE_HH__
+#define __QPDF_BUFFERINPUTSOURCE_HH__
+
+#include <qpdf/InputSource.hh>
+#include <qpdf/Buffer.hh>
+
+class BufferInputSource: public InputSource
+{
+ public:
+ BufferInputSource(std::string const& description, Buffer* buf,
+ bool own_memory = false);
+ virtual ~BufferInputSource();
+ virtual qpdf_offset_t findAndSkipNextEOL();
+ virtual std::string const& getName() const;
+ virtual qpdf_offset_t tell();
+ virtual void seek(qpdf_offset_t offset, int whence);
+ virtual void rewind();
+ virtual size_t read(char* buffer, size_t length);
+ virtual void unreadCh(char ch);
+
+ private:
+ bool own_memory;
+ std::string description;
+ Buffer* buf;
+ qpdf_offset_t cur_offset;
+};
+
+#endif // __QPDF_BUFFERINPUTSOURCE_HH__
diff --git a/include/qpdf/FileInputSource.hh b/include/qpdf/FileInputSource.hh
new file mode 100644
index 00000000..6129326d
--- /dev/null
+++ b/include/qpdf/FileInputSource.hh
@@ -0,0 +1,32 @@
+#ifndef __QPDF_FILEINPUTSOURCE_HH__
+#define __QPDF_FILEINPUTSOURCE_HH__
+
+#include <qpdf/InputSource.hh>
+
+class FileInputSource: public InputSource
+{
+ public:
+ FileInputSource();
+ void setFilename(char const* filename);
+ void setFile(char const* description, FILE* filep, bool close_file);
+ virtual ~FileInputSource();
+ virtual qpdf_offset_t findAndSkipNextEOL();
+ virtual std::string const& getName() const;
+ virtual qpdf_offset_t tell();
+ virtual void seek(qpdf_offset_t offset, int whence);
+ virtual void rewind();
+ virtual size_t read(char* buffer, size_t length);
+ virtual void unreadCh(char ch);
+
+ private:
+ FileInputSource(FileInputSource const&);
+ FileInputSource& operator=(FileInputSource const&);
+
+ void destroy();
+
+ bool close_file;
+ std::string filename;
+ FILE* file;
+};
+
+#endif // __QPDF_FILEINPUTSOURCE_HH__
diff --git a/include/qpdf/InputSource.hh b/include/qpdf/InputSource.hh
new file mode 100644
index 00000000..782d8888
--- /dev/null
+++ b/include/qpdf/InputSource.hh
@@ -0,0 +1,35 @@
+#ifndef __QPDF_INPUTSOURCE_HH__
+#define __QPDF_INPUTSOURCE_HH__
+
+#include <qpdf/Types.h>
+#include <stdio.h>
+#include <string>
+
+class InputSource
+{
+ public:
+ InputSource() :
+ last_offset(0)
+ {
+ }
+ virtual ~InputSource()
+ {
+ }
+
+ void setLastOffset(qpdf_offset_t);
+ qpdf_offset_t getLastOffset() const;
+ std::string readLine(size_t max_line_length);
+
+ virtual qpdf_offset_t findAndSkipNextEOL() = 0;
+ virtual std::string const& getName() const = 0;
+ virtual qpdf_offset_t tell() = 0;
+ virtual void seek(qpdf_offset_t offset, int whence) = 0;
+ virtual void rewind() = 0;
+ virtual size_t read(char* buffer, size_t length) = 0;
+ virtual void unreadCh(char ch) = 0;
+
+ protected:
+ qpdf_offset_t last_offset;
+};
+
+#endif // __QPDF_INPUTSOURCE_HH__
diff --git a/include/qpdf/QPDF.hh b/include/qpdf/QPDF.hh
index 3b72e981..e6ff75b4 100644
--- a/include/qpdf/QPDF.hh
+++ b/include/qpdf/QPDF.hh
@@ -21,6 +21,7 @@
#include <qpdf/QPDFObjectHandle.hh>
#include <qpdf/QPDFTokenizer.hh>
#include <qpdf/Buffer.hh>
+#include <qpdf/InputSource.hh>
class QPDF_Stream;
class BitStream;
@@ -474,80 +475,6 @@ class QPDF
private:
static std::string qpdf_version;
- class InputSource
- {
- public:
- InputSource() :
- last_offset(0)
- {
- }
- virtual ~InputSource()
- {
- }
-
- void setLastOffset(qpdf_offset_t);
- qpdf_offset_t getLastOffset() const;
- std::string readLine(size_t max_line_length);
-
- virtual qpdf_offset_t findAndSkipNextEOL() = 0;
- virtual std::string const& getName() const = 0;
- virtual qpdf_offset_t tell() = 0;
- virtual void seek(qpdf_offset_t offset, int whence) = 0;
- virtual void rewind() = 0;
- virtual size_t read(char* buffer, size_t length) = 0;
- virtual void unreadCh(char ch) = 0;
-
- protected:
- qpdf_offset_t last_offset;
- };
-
- class FileInputSource: public InputSource
- {
- public:
- FileInputSource();
- void setFilename(char const* filename);
- void setFile(char const* description, FILE* filep, bool close_file);
- virtual ~FileInputSource();
- virtual qpdf_offset_t findAndSkipNextEOL();
- virtual std::string const& getName() const;
- virtual qpdf_offset_t tell();
- virtual void seek(qpdf_offset_t offset, int whence);
- virtual void rewind();
- virtual size_t read(char* buffer, size_t length);
- virtual void unreadCh(char ch);
-
- private:
- FileInputSource(FileInputSource const&);
- FileInputSource& operator=(FileInputSource const&);
-
- void destroy();
-
- bool close_file;
- std::string filename;
- FILE* file;
- };
-
- class BufferInputSource: public InputSource
- {
- public:
- BufferInputSource(std::string const& description, Buffer* buf,
- bool own_memory = false);
- virtual ~BufferInputSource();
- virtual qpdf_offset_t findAndSkipNextEOL();
- virtual std::string const& getName() const;
- virtual qpdf_offset_t tell();
- virtual void seek(qpdf_offset_t offset, int whence);
- virtual void rewind();
- virtual size_t read(char* buffer, size_t length);
- virtual void unreadCh(char ch);
-
- private:
- bool own_memory;
- std::string description;
- Buffer* buf;
- qpdf_offset_t cur_offset;
- };
-
class ObjGen
{
public: