mirror of
https://github.com/qpdf/qpdf.git
synced 2024-12-22 19:08:59 +00:00
Add new _qpdf_data constructor taking a std::unique_ptr<QPDF>
Also, move _qpdf_data and to new header filer _qpdf_error to new header file qpdf-c_impl.hh
This commit is contained in:
parent
a2edf27b76
commit
c78f44798a
@ -12,6 +12,7 @@
|
|||||||
#include <qpdf/QPDFWriter.hh>
|
#include <qpdf/QPDFWriter.hh>
|
||||||
#include <qpdf/QTC.hh>
|
#include <qpdf/QTC.hh>
|
||||||
#include <qpdf/QUtil.hh>
|
#include <qpdf/QUtil.hh>
|
||||||
|
#include <qpdf/qpdf-c_impl.hh>
|
||||||
#include <qpdf/qpdflogger-c_impl.hh>
|
#include <qpdf/qpdflogger-c_impl.hh>
|
||||||
|
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
@ -20,42 +21,6 @@
|
|||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
struct _qpdf_error
|
|
||||||
{
|
|
||||||
std::shared_ptr<QPDFExc> exc;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _qpdf_data
|
|
||||||
{
|
|
||||||
_qpdf_data() = default;
|
|
||||||
~_qpdf_data() = default;
|
|
||||||
|
|
||||||
std::shared_ptr<QPDF> qpdf;
|
|
||||||
std::shared_ptr<QPDFWriter> qpdf_writer;
|
|
||||||
|
|
||||||
std::shared_ptr<QPDFExc> error;
|
|
||||||
_qpdf_error tmp_error;
|
|
||||||
std::list<QPDFExc> warnings;
|
|
||||||
std::string tmp_string;
|
|
||||||
|
|
||||||
// Parameters for functions we call
|
|
||||||
char const* filename{nullptr}; // or description
|
|
||||||
char const* buffer{nullptr};
|
|
||||||
unsigned long long size{0};
|
|
||||||
char const* password{nullptr};
|
|
||||||
bool write_memory{false};
|
|
||||||
std::shared_ptr<Buffer> output_buffer;
|
|
||||||
|
|
||||||
// QPDFObjectHandle support
|
|
||||||
bool silence_errors{false};
|
|
||||||
bool oh_error_occurred{false};
|
|
||||||
std::map<qpdf_oh, std::shared_ptr<QPDFObjectHandle>> oh_cache;
|
|
||||||
qpdf_oh next_oh{0};
|
|
||||||
std::set<std::string> cur_iter_dict_keys;
|
|
||||||
std::set<std::string>::const_iterator dict_iter;
|
|
||||||
std::string cur_dict_key;
|
|
||||||
};
|
|
||||||
|
|
||||||
// must set qpdf->filename and qpdf->password
|
// must set qpdf->filename and qpdf->password
|
||||||
static void
|
static void
|
||||||
call_read(qpdf_data qpdf)
|
call_read(qpdf_data qpdf)
|
||||||
|
47
libqpdf/qpdf/qpdf-c_impl.hh
Normal file
47
libqpdf/qpdf/qpdf-c_impl.hh
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
#include <qpdf/qpdf-c.h>
|
||||||
|
|
||||||
|
#include <memory>
|
||||||
|
|
||||||
|
#include <qpdf/QPDF.hh>
|
||||||
|
#include <qpdf/QPDFExc.hh>
|
||||||
|
#include <qpdf/QPDFWriter.hh>
|
||||||
|
|
||||||
|
struct _qpdf_error
|
||||||
|
{
|
||||||
|
std::shared_ptr<QPDFExc> exc;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _qpdf_data
|
||||||
|
{
|
||||||
|
_qpdf_data() = default;
|
||||||
|
|
||||||
|
_qpdf_data(std::unique_ptr<QPDF>&& qpdf) :
|
||||||
|
qpdf(std::move(qpdf)){};
|
||||||
|
|
||||||
|
~_qpdf_data() = default;
|
||||||
|
|
||||||
|
std::shared_ptr<QPDF> qpdf;
|
||||||
|
std::shared_ptr<QPDFWriter> qpdf_writer;
|
||||||
|
|
||||||
|
std::shared_ptr<QPDFExc> error;
|
||||||
|
_qpdf_error tmp_error;
|
||||||
|
std::list<QPDFExc> warnings;
|
||||||
|
std::string tmp_string;
|
||||||
|
|
||||||
|
// Parameters for functions we call
|
||||||
|
char const* filename{nullptr}; // or description
|
||||||
|
char const* buffer{nullptr};
|
||||||
|
unsigned long long size{0};
|
||||||
|
char const* password{nullptr};
|
||||||
|
bool write_memory{false};
|
||||||
|
std::shared_ptr<Buffer> output_buffer;
|
||||||
|
|
||||||
|
// QPDFObjectHandle support
|
||||||
|
bool silence_errors{false};
|
||||||
|
bool oh_error_occurred{false};
|
||||||
|
std::map<qpdf_oh, std::shared_ptr<QPDFObjectHandle>> oh_cache;
|
||||||
|
qpdf_oh next_oh{0};
|
||||||
|
std::set<std::string> cur_iter_dict_keys;
|
||||||
|
std::set<std::string>::const_iterator dict_iter;
|
||||||
|
std::string cur_dict_key;
|
||||||
|
};
|
Loading…
Reference in New Issue
Block a user