aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/qpdf
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2019-08-18 00:54:24 +0200
committerJay Berkenbilt <ejb@ql.org>2019-08-18 05:02:41 +0200
commite83f3308fbccd34959d325b830118eafe441fe48 (patch)
treeb3ac08e39da91a00b67e147bd05f5379789fcbe3 /libqpdf/qpdf
parent04419d7c3269aa29ff669c8b5f3a7999edb44bea (diff)
downloadqpdf-e83f3308fbccd34959d325b830118eafe441fe48.tar.zst
SparseOHArray
Diffstat (limited to 'libqpdf/qpdf')
-rw-r--r--libqpdf/qpdf/SparseOHArray.hh34
1 files changed, 34 insertions, 0 deletions
diff --git a/libqpdf/qpdf/SparseOHArray.hh b/libqpdf/qpdf/SparseOHArray.hh
new file mode 100644
index 00000000..2e3f334c
--- /dev/null
+++ b/libqpdf/qpdf/SparseOHArray.hh
@@ -0,0 +1,34 @@
+#ifndef QPDF_SPARSEOHARRAY_HH
+#define QPDF_SPARSEOHARRAY_HH
+
+#include <qpdf/QPDFObjectHandle.hh>
+#include <map>
+
+class SparseOHArray
+{
+ public:
+ QPDF_DLL
+ SparseOHArray();
+ QPDF_DLL
+ size_t size() const;
+ QPDF_DLL
+ void append(QPDFObjectHandle oh);
+ QPDF_DLL
+ QPDFObjectHandle at(size_t idx) const;
+ QPDF_DLL
+ void remove_last();
+ QPDF_DLL
+ void releaseResolved();
+ QPDF_DLL
+ void setAt(size_t idx, QPDFObjectHandle oh);
+ QPDF_DLL
+ void erase(size_t idx);
+ QPDF_DLL
+ void insert(size_t idx, QPDFObjectHandle oh);
+
+ private:
+ std::map<size_t, QPDFObjectHandle> elements;
+ size_t n_elements;
+};
+
+#endif // QPDF_SPARSEOHARRAY_HH