diff options
author | Jay Berkenbilt <ejb@ql.org> | 2012-07-21 11:37:14 +0200 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2012-07-21 15:06:06 +0200 |
commit | 15eaed5c52c85dd97ce5bc829817c5535c527207 (patch) | |
tree | 9114c410414102d7de50184fb4866f8e881a33cc /include | |
parent | 8657c6f00489b5c26fc0c00f2fc91c5682acbe95 (diff) | |
download | qpdf-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.hh | 28 | ||||
-rw-r--r-- | include/qpdf/FileInputSource.hh | 32 | ||||
-rw-r--r-- | include/qpdf/InputSource.hh | 35 | ||||
-rw-r--r-- | include/qpdf/QPDF.hh | 75 |
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: |