aboutsummaryrefslogtreecommitdiffstats
path: root/include/qpdf/InputSource.hh
diff options
context:
space:
mode:
Diffstat (limited to 'include/qpdf/InputSource.hh')
-rw-r--r--include/qpdf/InputSource.hh35
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__