diff options
Diffstat (limited to 'libqpdf/QPDFXRefEntry.cc')
-rw-r--r-- | libqpdf/QPDFXRefEntry.cc | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/libqpdf/QPDFXRefEntry.cc b/libqpdf/QPDFXRefEntry.cc new file mode 100644 index 00000000..669a2f13 --- /dev/null +++ b/libqpdf/QPDFXRefEntry.cc @@ -0,0 +1,61 @@ + +#include <qpdf/QPDFXRefEntry.hh> +#include <qpdf/QPDFExc.hh> +#include <qpdf/QUtil.hh> + +QPDFXRefEntry::QPDFXRefEntry() : + type(0), + field1(0), + field2(0) +{ +} + +QPDFXRefEntry::QPDFXRefEntry(int type, int field1, int field2) : + type(type), + field1(field1), + field2(field2) +{ + if ((type < 1) || (type > 2)) + { + throw QPDFExc("invalid xref type " + QUtil::int_to_string(type)); + } +} + +int +QPDFXRefEntry::getType() const +{ + return this->type; +} + +int +QPDFXRefEntry::getOffset() const +{ + if (this->type != 1) + { + throw QPDFExc( + "getOffset called for xref entry of type != 1"); + } + return this->field1; +} + +int +QPDFXRefEntry::getObjStreamNumber() const +{ + if (this->type != 2) + { + throw QPDFExc( + "getObjStreamNumber called for xref entry of type != 2"); + } + return this->field1; +} + +int +QPDFXRefEntry::getObjStreamIndex() const +{ + if (this->type != 2) + { + throw QPDFExc( + "getObjStreamIndex called for xref entry of type != 2"); + } + return this->field2; +} |