From 15eaed5c52c85dd97ce5bc829817c5535c527207 Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Sat, 21 Jul 2012 05:37:14 -0400 Subject: Refactor: pull *InputSource out of QPDF InputSource, FileInputSource, and BufferInputSource are now top-level classes instead of privately nested inside QPDF. --- include/qpdf/BufferInputSource.hh | 28 +++++++++++++++ include/qpdf/FileInputSource.hh | 32 +++++++++++++++++ include/qpdf/InputSource.hh | 35 ++++++++++++++++++ include/qpdf/QPDF.hh | 75 +-------------------------------------- 4 files changed, 96 insertions(+), 74 deletions(-) create mode 100644 include/qpdf/BufferInputSource.hh create mode 100644 include/qpdf/FileInputSource.hh create mode 100644 include/qpdf/InputSource.hh (limited to 'include') 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 +#include + +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 + +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 +#include +#include + +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 #include #include +#include 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: -- cgit v1.2.3-54-g00ecf