diff options
author | m-holger <m-holger@kubitscheck.org> | 2023-01-05 12:09:44 +0100 |
---|---|---|
committer | m-holger <m-holger@kubitscheck.org> | 2023-05-19 13:27:53 +0200 |
commit | 9b0801721710093102c64068b6c643c8fcd7f5db (patch) | |
tree | 631fd26fc674aee7fe54280f56597f94cf97679b /libqpdf/QPDFObjGen.cc | |
parent | a6d7b79e65941238871c0c3d7d06b9bf246213ba (diff) | |
download | qpdf-9b0801721710093102c64068b6c643c8fcd7f5db.tar.zst |
Add new convenience class QPDFObjGen::set
Diffstat (limited to 'libqpdf/QPDFObjGen.cc')
-rw-r--r-- | libqpdf/QPDFObjGen.cc | 56 |
1 files changed, 54 insertions, 2 deletions
diff --git a/libqpdf/QPDFObjGen.cc b/libqpdf/QPDFObjGen.cc index 7cce84d8..8e5bd178 100644 --- a/libqpdf/QPDFObjGen.cc +++ b/libqpdf/QPDFObjGen.cc @@ -1,7 +1,12 @@ #include <qpdf/QPDFObjGen.hh> -#include <qpdf/QUtil.hh> +#include <qpdf/QPDFObjectHandle.hh> +#include <qpdf/QPDFObjectHelper.hh> +#include <qpdf/QPDFObject_private.hh> +#include <stdexcept> + +// ABI: inline and pass og by value std::ostream& operator<<(std::ostream& os, const QPDFObjGen& og) { @@ -9,8 +14,55 @@ operator<<(std::ostream& os, const QPDFObjGen& og) return os; } +// ABI: inline std::string QPDFObjGen::unparse(char separator) const { - return std::to_string(this->obj) + separator + std::to_string(this->gen); + return std::to_string(obj) + separator + std::to_string(gen); +} + +bool +QPDFObjGen::set::add(QPDFObjectHandle const& oh) +{ + if (auto* ptr = oh.getObjectPtr()) { + return add(ptr->getObjGen()); + } else { + throw std::logic_error("attempt to retrieve QPDFObjGen from " + "uninitialized QPDFObjectHandle"); + return false; + } +} + +bool +QPDFObjGen::set::add(QPDFObjectHelper const& helper) +{ + if (auto* ptr = helper.getObjectHandle().getObjectPtr()) { + return add(ptr->getObjGen()); + } else { + throw std::logic_error("attempt to retrieve QPDFObjGen from " + "uninitialized QPDFObjectHandle"); + return false; + } +} + +void +QPDFObjGen::set::erase(QPDFObjectHandle const& oh) +{ + if (auto* ptr = oh.getObjectPtr()) { + erase(ptr->getObjGen()); + } else { + throw std::logic_error("attempt to retrieve QPDFObjGen from " + "uninitialized QPDFObjectHandle"); + } +} + +void +QPDFObjGen::set::erase(QPDFObjectHelper const& helper) +{ + if (auto* ptr = helper.getObjectHandle().getObjectPtr()) { + erase(ptr->getObjGen()); + } else { + throw std::logic_error("attempt to retrieve QPDFObjGen from " + "uninitialized QPDFObjectHandle"); + } } |