#ifndef QPDF_DICTIONARY_HH #define QPDF_DICTIONARY_HH #include #include #include #include class QPDF_Dictionary: public QPDFObject { public: QPDF_Dictionary(std::map const& items); virtual ~QPDF_Dictionary() = default; virtual std::string unparse(); virtual JSON getJSON(); virtual QPDFObject::object_type_e getTypeCode() const; virtual char const* getTypeName() const; virtual void setDescription(QPDF*, std::string const&); // hasKey() and getKeys() treat keys with null values as if they // aren't there. getKey() returns null for the value of a // non-existent key. This is as per the PDF spec. bool hasKey(std::string const&); QPDFObjectHandle getKey(std::string const&); std::set getKeys(); std::map const& getAsMap() const; // If value is null, remove key; otherwise, replace the value of // key, adding it if it does not exist. void replaceKey(std::string const& key, QPDFObjectHandle value); // Remove key, doing nothing if key does not exist void removeKey(std::string const& key); protected: virtual void releaseResolved(); private: std::map items; }; #endif // QPDF_DICTIONARY_HH