Commit c78f44798a0b07e7a585c85c7b8bcc1907542cd4

Authored by m-holger
1 parent a2edf27b

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
libqpdf/qpdf-c.cc
... ... @@ -12,6 +12,7 @@
12 12 #include <qpdf/QPDFWriter.hh>
13 13 #include <qpdf/QTC.hh>
14 14 #include <qpdf/QUtil.hh>
  15 +#include <qpdf/qpdf-c_impl.hh>
15 16 #include <qpdf/qpdflogger-c_impl.hh>
16 17  
17 18 #include <cstring>
... ... @@ -20,42 +21,6 @@
20 21 #include <stdexcept>
21 22 #include <string>
22 23  
23   -struct _qpdf_error
24   -{
25   - std::shared_ptr<QPDFExc> exc;
26   -};
27   -
28   -struct _qpdf_data
29   -{
30   - _qpdf_data() = default;
31   - ~_qpdf_data() = default;
32   -
33   - std::shared_ptr<QPDF> qpdf;
34   - std::shared_ptr<QPDFWriter> qpdf_writer;
35   -
36   - std::shared_ptr<QPDFExc> error;
37   - _qpdf_error tmp_error;
38   - std::list<QPDFExc> warnings;
39   - std::string tmp_string;
40   -
41   - // Parameters for functions we call
42   - char const* filename{nullptr}; // or description
43   - char const* buffer{nullptr};
44   - unsigned long long size{0};
45   - char const* password{nullptr};
46   - bool write_memory{false};
47   - std::shared_ptr<Buffer> output_buffer;
48   -
49   - // QPDFObjectHandle support
50   - bool silence_errors{false};
51   - bool oh_error_occurred{false};
52   - std::map<qpdf_oh, std::shared_ptr<QPDFObjectHandle>> oh_cache;
53   - qpdf_oh next_oh{0};
54   - std::set<std::string> cur_iter_dict_keys;
55   - std::set<std::string>::const_iterator dict_iter;
56   - std::string cur_dict_key;
57   -};
58   -
59 24 // must set qpdf->filename and qpdf->password
60 25 static void
61 26 call_read(qpdf_data qpdf)
... ...
libqpdf/qpdf/qpdf-c_impl.hh 0 → 100644
  1 +#include <qpdf/qpdf-c.h>
  2 +
  3 +#include <memory>
  4 +
  5 +#include <qpdf/QPDF.hh>
  6 +#include <qpdf/QPDFExc.hh>
  7 +#include <qpdf/QPDFWriter.hh>
  8 +
  9 +struct _qpdf_error
  10 +{
  11 + std::shared_ptr<QPDFExc> exc;
  12 +};
  13 +
  14 +struct _qpdf_data
  15 +{
  16 + _qpdf_data() = default;
  17 +
  18 + _qpdf_data(std::unique_ptr<QPDF>&& qpdf) :
  19 + qpdf(std::move(qpdf)){};
  20 +
  21 + ~_qpdf_data() = default;
  22 +
  23 + std::shared_ptr<QPDF> qpdf;
  24 + std::shared_ptr<QPDFWriter> qpdf_writer;
  25 +
  26 + std::shared_ptr<QPDFExc> error;
  27 + _qpdf_error tmp_error;
  28 + std::list<QPDFExc> warnings;
  29 + std::string tmp_string;
  30 +
  31 + // Parameters for functions we call
  32 + char const* filename{nullptr}; // or description
  33 + char const* buffer{nullptr};
  34 + unsigned long long size{0};
  35 + char const* password{nullptr};
  36 + bool write_memory{false};
  37 + std::shared_ptr<Buffer> output_buffer;
  38 +
  39 + // QPDFObjectHandle support
  40 + bool silence_errors{false};
  41 + bool oh_error_occurred{false};
  42 + std::map<qpdf_oh, std::shared_ptr<QPDFObjectHandle>> oh_cache;
  43 + qpdf_oh next_oh{0};
  44 + std::set<std::string> cur_iter_dict_keys;
  45 + std::set<std::string>::const_iterator dict_iter;
  46 + std::string cur_dict_key;
  47 +};
... ...