Commit 2d36aedf89e23df97fb56feee24f176f5c4e768c

Authored by m-holger
1 parent 4c61ba56

Refactor `QPDFJob`: mark `ProgressReporter` methods as `final`, inline construct…

…ors for `Members` and `ProgressReporter`
libqpdf/QPDFJob.cc
... ... @@ -69,7 +69,7 @@ namespace
69 69 std::vector<int> selected_pages;
70 70 };
71 71  
72   - class ProgressReporter: public QPDFWriter::ProgressReporter
  72 + class ProgressReporter final: public QPDFWriter::ProgressReporter
73 73 {
74 74 public:
75 75 ProgressReporter(Pipeline& p, std::string const& prefix, char const* filename) :
... ... @@ -78,8 +78,12 @@ namespace
78 78 filename(filename)
79 79 {
80 80 }
81   - ~ProgressReporter() override = default;
82   - void reportProgress(int) override;
  81 + ~ProgressReporter() final = default;
  82 + void
  83 + reportProgress(int percentage) final
  84 + {
  85 + p << prefix << ": " << filename << ": write progress: " << percentage << "%\n";
  86 + }
83 87  
84 88 private:
85 89 Pipeline& p;
... ... @@ -267,19 +271,8 @@ QPDFPageData::QPDFPageData(QPDFPageData const&amp; other, int page) :
267 271 selected_pages.push_back(page);
268 272 }
269 273  
270   -void
271   -ProgressReporter::reportProgress(int percentage)
272   -{
273   - p << prefix << ": " << filename << ": write progress: " << percentage << "%\n";
274   -}
275   -
276   -QPDFJob::Members::Members() :
277   - log(QPDFLogger::defaultLogger())
278   -{
279   -}
280   -
281 274 QPDFJob::QPDFJob() :
282   - m(new Members())
  275 + m(std::make_shared<Members>())
283 276 {
284 277 }
285 278  
... ...
libqpdf/qpdf/QPDFJob_private.hh
... ... @@ -4,6 +4,7 @@
4 4 #include <qpdf/QPDFJob.hh>
5 5  
6 6 #include <qpdf/ClosedFileInputSource.hh>
  7 +#include <qpdf/QPDFLogger.hh>
7 8  
8 9 struct QPDFJob::RotationSpec
9 10 {
... ... @@ -60,6 +61,11 @@ class QPDFJob::Members
60 61 friend class QPDFJob;
61 62  
62 63 public:
  64 + Members() :
  65 + log(QPDFLogger::defaultLogger())
  66 + {
  67 + }
  68 + Members(Members const&) = delete;
63 69 ~Members() = default;
64 70  
65 71 private:
... ... @@ -70,9 +76,6 @@ class QPDFJob::Members
70 76 static int constexpr DEFAULT_OI_MIN_AREA = 16384;
71 77 static int constexpr DEFAULT_II_MIN_BYTES = 1024;
72 78  
73   - Members();
74   - Members(Members const&) = delete;
75   -
76 79 std::shared_ptr<QPDFLogger> log;
77 80 std::string message_prefix{"qpdf"};
78 81 bool warnings{false};
... ...