aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJay Berkenbilt <jberkenbilt@users.noreply.github.com>2023-02-18 23:49:18 +0100
committerGitHub <noreply@github.com>2023-02-18 23:49:18 +0100
commitb3cfa1010f95514a13590266dd50677445f74309 (patch)
tree68ff8d71c63d27d59d05b1b0d8ed503319463a91 /include
parente4e03e9ac10d8ea0c1a8ef8c78f0103068928822 (diff)
parent07bb5c3dd6213af9c9a64e17ae2d457cf4fc7190 (diff)
downloadqpdf-b3cfa1010f95514a13590266dd50677445f74309.tar.zst
Merge pull request #902 from m-holger/od
Refactor creation of object descriptions
Diffstat (limited to 'include')
-rw-r--r--include/qpdf/QPDF.hh66
1 files changed, 1 insertions, 65 deletions
diff --git a/include/qpdf/QPDF.hh b/include/qpdf/QPDF.hh
index d6b32fe9..54af0d17 100644
--- a/include/qpdf/QPDF.hh
+++ b/include/qpdf/QPDF.hh
@@ -1108,71 +1108,7 @@ class QPDF
std::set<QPDFObjGen>::const_iterator iter;
};
- class JSONReactor: public JSON::Reactor
- {
- public:
- JSONReactor(
- QPDF&, std::shared_ptr<InputSource> is, bool must_be_complete);
- virtual ~JSONReactor() = default;
- virtual void dictionaryStart() override;
- virtual void arrayStart() override;
- virtual void containerEnd(JSON const& value) override;
- virtual void topLevelScalar() override;
- virtual bool
- dictionaryItem(std::string const& key, JSON const& value) override;
- virtual bool arrayItem(JSON const& value) override;
-
- bool anyErrors() const;
-
- private:
- enum state_e {
- st_initial,
- st_top,
- st_qpdf,
- st_qpdf_meta,
- st_objects,
- st_trailer,
- st_object_top,
- st_stream,
- st_object,
- st_ignore,
- };
-
- void containerStart();
- void nestedState(std::string const& key, JSON const& value, state_e);
- void setObjectDescription(QPDFObjectHandle& oh, JSON const& value);
- QPDFObjectHandle makeObject(JSON const& value);
- void error(qpdf_offset_t offset, std::string const& message);
- QPDFObjectHandle reserveObject(int obj, int gen);
- void replaceObject(
- QPDFObjectHandle to_replace,
- QPDFObjectHandle replacement,
- JSON const& value);
-
- QPDF& pdf;
- std::shared_ptr<InputSource> is;
- bool must_be_complete;
- bool errors;
- bool parse_error;
- bool saw_qpdf;
- bool saw_qpdf_meta;
- bool saw_objects;
- bool saw_json_version;
- bool saw_pdf_version;
- bool saw_trailer;
- state_e state;
- state_e next_state;
- std::string cur_object;
- bool saw_value;
- bool saw_stream;
- bool saw_dict;
- bool saw_data;
- bool saw_datafile;
- bool this_stream_needs_data;
- std::vector<state_e> state_stack;
- std::vector<QPDFObjectHandle> object_stack;
- std::set<QPDFObjGen> reserved;
- };
+ class JSONReactor;
void parse(char const* password);
void inParse(bool);