Commit e10932f3585c2add9ea661480065963076bca348
1 parent
2dc837f4
Refactor `Streams` class: move implementation to `Doc::Objects::Streams`, improv…
…e encapsulation, and streamline stream data handling.
Showing
2 changed files
with
36 additions
and
30 deletions
libqpdf/QPDF_Stream.cc
| @@ -25,32 +25,7 @@ | @@ -25,32 +25,7 @@ | ||
| 25 | using namespace std::literals; | 25 | using namespace std::literals; |
| 26 | using namespace qpdf; | 26 | using namespace qpdf; |
| 27 | 27 | ||
| 28 | -// Pipe class is restricted to QPDF_Stream. | ||
| 29 | -class QPDF::Doc::Streams | ||
| 30 | -{ | ||
| 31 | - public: | ||
| 32 | - static bool | ||
| 33 | - pipeStreamData( | ||
| 34 | - QPDF* qpdf, | ||
| 35 | - QPDFObjGen og, | ||
| 36 | - qpdf_offset_t offset, | ||
| 37 | - size_t length, | ||
| 38 | - QPDFObjectHandle dict, | ||
| 39 | - bool is_root_metadata, | ||
| 40 | - Pipeline* pipeline, | ||
| 41 | - bool suppress_warnings, | ||
| 42 | - bool will_retry) | ||
| 43 | - { | ||
| 44 | - return qpdf->pipeStreamData( | ||
| 45 | - og, offset, length, dict, is_root_metadata, pipeline, suppress_warnings, will_retry); | ||
| 46 | - } | ||
| 47 | - | ||
| 48 | - static void | ||
| 49 | - copyStreamData(QPDF* qpdf, QPDFObjectHandle const& dest, QPDFObjectHandle const& src) | ||
| 50 | - { | ||
| 51 | - qpdf->copyStreamData(dest, src); | ||
| 52 | - } | ||
| 53 | -}; | 28 | +using Streams = QPDF::Doc::Objects::Streams; |
| 54 | 29 | ||
| 55 | namespace | 30 | namespace |
| 56 | { | 31 | { |
| @@ -217,7 +192,7 @@ Stream::copy() const | @@ -217,7 +192,7 @@ Stream::copy() const | ||
| 217 | { | 192 | { |
| 218 | Stream result = qpdf()->newStream(); | 193 | Stream result = qpdf()->newStream(); |
| 219 | result.stream()->stream_dict = getDict().copy(); | 194 | result.stream()->stream_dict = getDict().copy(); |
| 220 | - QPDF::Doc::Streams::copyStreamData(qpdf(), result, *this); | 195 | + Streams::copyStreamData(qpdf(), result, *this); |
| 221 | return result; | 196 | return result; |
| 222 | } | 197 | } |
| 223 | 198 | ||
| @@ -593,7 +568,7 @@ Stream::pipeStreamData( | @@ -593,7 +568,7 @@ Stream::pipeStreamData( | ||
| 593 | if (offset() == 0) { | 568 | if (offset() == 0) { |
| 594 | throw std::logic_error("pipeStreamData called for stream with no data"); | 569 | throw std::logic_error("pipeStreamData called for stream with no data"); |
| 595 | } | 570 | } |
| 596 | - if (!QPDF::Doc::Streams::pipeStreamData( | 571 | + if (!Streams::pipeStreamData( |
| 597 | qpdf(), | 572 | qpdf(), |
| 598 | id_gen(), | 573 | id_gen(), |
| 599 | offset(), | 574 | offset(), |
libqpdf/qpdf/QPDF_private.hh
| @@ -340,8 +340,6 @@ class QPDF::Doc | @@ -340,8 +340,6 @@ class QPDF::Doc | ||
| 340 | class JobSetter; | 340 | class JobSetter; |
| 341 | class ParseGuard; | 341 | class ParseGuard; |
| 342 | class Resolver; | 342 | class Resolver; |
| 343 | - class StreamCopier; | ||
| 344 | - class Streams; | ||
| 345 | class Writer; | 343 | class Writer; |
| 346 | 344 | ||
| 347 | class Encryption | 345 | class Encryption |
| @@ -620,6 +618,39 @@ class QPDF::Doc | @@ -620,6 +618,39 @@ class QPDF::Doc | ||
| 620 | std::map<unsigned long long, Copier> copiers; | 618 | std::map<unsigned long long, Copier> copiers; |
| 621 | }; // class QPDF::Doc::Objects::Foreign | 619 | }; // class QPDF::Doc::Objects::Foreign |
| 622 | 620 | ||
| 621 | + class Streams | ||
| 622 | + { | ||
| 623 | + public: | ||
| 624 | + static bool | ||
| 625 | + pipeStreamData( | ||
| 626 | + QPDF* qpdf, | ||
| 627 | + QPDFObjGen og, | ||
| 628 | + qpdf_offset_t offset, | ||
| 629 | + size_t length, | ||
| 630 | + QPDFObjectHandle dict, | ||
| 631 | + bool is_root_metadata, | ||
| 632 | + Pipeline* pipeline, | ||
| 633 | + bool suppress_warnings, | ||
| 634 | + bool will_retry) | ||
| 635 | + { | ||
| 636 | + return qpdf->pipeStreamData( | ||
| 637 | + og, | ||
| 638 | + offset, | ||
| 639 | + length, | ||
| 640 | + dict, | ||
| 641 | + is_root_metadata, | ||
| 642 | + pipeline, | ||
| 643 | + suppress_warnings, | ||
| 644 | + will_retry); | ||
| 645 | + } | ||
| 646 | + | ||
| 647 | + static void | ||
| 648 | + copyStreamData(QPDF* qpdf, QPDFObjectHandle const& dest, QPDFObjectHandle const& src) | ||
| 649 | + { | ||
| 650 | + qpdf->copyStreamData(dest, src); | ||
| 651 | + } | ||
| 652 | + }; | ||
| 653 | + | ||
| 623 | public: | 654 | public: |
| 624 | Objects() = delete; | 655 | Objects() = delete; |
| 625 | Objects(Objects const&) = delete; | 656 | Objects(Objects const&) = delete; |