diff options
Diffstat (limited to 'include/qpdf/InputSource.hh')
-rw-r--r-- | include/qpdf/InputSource.hh | 35 |
1 files changed, 35 insertions, 0 deletions
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__ |