2
1
mirror of https://github.com/qpdf/qpdf.git synced 2024-05-28 16:00:53 +00:00

QPDFJob: start real API

Create QPDFJob_options.cc to hold API implementation functions.
Reorganize a little in preparation for moving public member variables
private and creating the real QPDFJob API that will be used by callers
as well as the argv/json initialization methods.
This commit is contained in:
Jay Berkenbilt 2022-01-23 09:46:02 -05:00
parent 1d099ab743
commit 564dc03607
3 changed files with 37 additions and 24 deletions

View File

@ -45,6 +45,8 @@ class QPDFJob
QPDF_DLL QPDF_DLL
QPDFJob(); QPDFJob();
// SETUP FUNCTIONS
// Initialize a QPDFJob object from argv. The progname_env // Initialize a QPDFJob object from argv. The progname_env
// argument is the name of an environment variable which, if set, // argument is the name of an environment variable which, if set,
// overrides the name of the executable for purposes of generating // overrides the name of the executable for purposes of generating
@ -83,36 +85,45 @@ class QPDFJob
QPDF_DLL QPDF_DLL
void setOutputStreams(std::ostream* out_stream, std::ostream* err_stream); void setOutputStreams(std::ostream* out_stream, std::ostream* err_stream);
// QXXXQ set options -- implemented in QPDFJob_options.cc
// QXXXQ these will not be in the final interface
QPDF_DLL
bool suppressWarnings();
QPDF_DLL
bool warningsExitZero();
QPDF_DLL
bool checkRequiresPassword();
QPDF_DLL
bool checkIsEncrypted();
// /QXXXQ
// Execute the job
QPDF_DLL
void run();
// CHECK STATUS -- these methods provide information known after
// run() is called.
QPDF_DLL
bool hasWarnings();
QPDF_DLL
bool createsOutput(); // QXXXQ need better name
// Return value is bitwise OR of values from qpdf_encryption_status_e
QPDF_DLL
unsigned long getEncryptionStatus();
// HELPER FUNCTIONS -- methods useful for calling in handlers that
// interact with QPDFJob during run or initialization.
// If in verbose mode, call the given function, passing in the // If in verbose mode, call the given function, passing in the
// output stream and message prefix. // output stream and message prefix.
QPDF_DLL QPDF_DLL
void doIfVerbose( void doIfVerbose(
std::function<void(std::ostream&, std::string const& prefix)> fn); std::function<void(std::ostream&, std::string const& prefix)> fn);
QPDF_DLL
void run();
QPDF_DLL
bool hasWarnings();
QPDF_DLL
bool createsOutput();
QPDF_DLL
bool suppressWarnings();
QPDF_DLL
bool warningsExitZero();
QPDF_DLL
bool checkRequiresPassword();
QPDF_DLL
bool checkIsEncrypted();
// Return value is bitwise OR of values from qpdf_encryption_status_e
QPDF_DLL
unsigned long getEncryptionStatus();
// QXXXQ From here to END-PUBLIC should all be private or // QXXXQ From here to END-PUBLIC should all be private or
// different somehow // different somehow

View File

@ -0,0 +1 @@
#include <qpdf/QPDFJob.hh>

View File

@ -73,6 +73,7 @@ SRCS_libqpdf = \
libqpdf/QPDFFormFieldObjectHelper.cc \ libqpdf/QPDFFormFieldObjectHelper.cc \
libqpdf/QPDFJob.cc \ libqpdf/QPDFJob.cc \
libqpdf/QPDFJob_argv.cc \ libqpdf/QPDFJob_argv.cc \
libqpdf/QPDFJob_config.cc \
libqpdf/QPDFMatrix.cc \ libqpdf/QPDFMatrix.cc \
libqpdf/QPDFNameTreeObjectHelper.cc \ libqpdf/QPDFNameTreeObjectHelper.cc \
libqpdf/QPDFNumberTreeObjectHelper.cc \ libqpdf/QPDFNumberTreeObjectHelper.cc \