aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/QPDFJob_json.cc
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2022-01-30 20:39:38 +0100
committerJay Berkenbilt <ejb@ql.org>2022-01-31 21:57:45 +0100
commit1355d95d0811942758036e23d64ed6b9fb7c8317 (patch)
tree449fc6664446e21bcea22f7c50aa816c8ef1e432 /libqpdf/QPDFJob_json.cc
parentcd30f626fedef7c577766d32e84a65a7f0fbcb7a (diff)
downloadqpdf-1355d95d0811942758036e23d64ed6b9fb7c8317.tar.zst
QPDFJob: partial mode for initializeFromJson
Diffstat (limited to 'libqpdf/QPDFJob_json.cc')
-rw-r--r--libqpdf/QPDFJob_json.cc17
1 files changed, 12 insertions, 5 deletions
diff --git a/libqpdf/QPDFJob_json.cc b/libqpdf/QPDFJob_json.cc
index 02e851b0..6525b761 100644
--- a/libqpdf/QPDFJob_json.cc
+++ b/libqpdf/QPDFJob_json.cc
@@ -15,7 +15,7 @@ namespace
class Handlers
{
public:
- Handlers(std::shared_ptr<QPDFJob::Config> c_main);
+ Handlers(bool partial, std::shared_ptr<QPDFJob::Config> c_main);
void handle(JSON&);
private:
@@ -47,6 +47,7 @@ namespace
setup_handler_t bindSetup(void (Handlers::*f)(std::string const&));
std::list<std::shared_ptr<JSONHandler>> json_handlers;
+ bool partial;
JSONHandler* jh; // points to last of json_handlers
std::shared_ptr<QPDFJob::Config> c_main;
std::shared_ptr<QPDFJob::CopyAttConfig> c_copy_att;
@@ -57,7 +58,8 @@ namespace
};
}
-Handlers::Handlers(std::shared_ptr<QPDFJob::Config> c_main) :
+Handlers::Handlers(bool partial, std::shared_ptr<QPDFJob::Config> c_main) :
+ partial(partial),
jh(nullptr),
c_main(c_main)
{
@@ -95,7 +97,12 @@ Handlers::initHandlers()
this->jh = this->json_handlers.back().get();
jh->addDictHandlers(
[](std::string const&, JSON){},
- [this](std::string const&){c_main->checkConfiguration();});
+ [this](std::string const&){
+ if (! this->partial)
+ {
+ c_main->checkConfiguration();
+ }
+ });
# include <qpdf/auto_job_json_init.hh>
@@ -623,7 +630,7 @@ Handlers::setupOptionsUnderlayPassword(std::string const& key)
}
void
-QPDFJob::initializeFromJson(std::string const& json)
+QPDFJob::initializeFromJson(std::string const& json, bool partial)
{
std::list<std::string> errors;
JSON j = JSON::parse(json);
@@ -639,5 +646,5 @@ QPDFJob::initializeFromJson(std::string const& json)
throw std::runtime_error(msg.str());
}
- Handlers(config()).handle(j);
+ Handlers(partial, config()).handle(j);
}