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 | 25 | using namespace std::literals; |
| 26 | 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 | 30 | namespace |
| 56 | 31 | { |
| ... | ... | @@ -217,7 +192,7 @@ Stream::copy() const |
| 217 | 192 | { |
| 218 | 193 | Stream result = qpdf()->newStream(); |
| 219 | 194 | result.stream()->stream_dict = getDict().copy(); |
| 220 | - QPDF::Doc::Streams::copyStreamData(qpdf(), result, *this); | |
| 195 | + Streams::copyStreamData(qpdf(), result, *this); | |
| 221 | 196 | return result; |
| 222 | 197 | } |
| 223 | 198 | |
| ... | ... | @@ -593,7 +568,7 @@ Stream::pipeStreamData( |
| 593 | 568 | if (offset() == 0) { |
| 594 | 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 | 572 | qpdf(), |
| 598 | 573 | id_gen(), |
| 599 | 574 | offset(), | ... | ... |
libqpdf/qpdf/QPDF_private.hh
| ... | ... | @@ -340,8 +340,6 @@ class QPDF::Doc |
| 340 | 340 | class JobSetter; |
| 341 | 341 | class ParseGuard; |
| 342 | 342 | class Resolver; |
| 343 | - class StreamCopier; | |
| 344 | - class Streams; | |
| 345 | 343 | class Writer; |
| 346 | 344 | |
| 347 | 345 | class Encryption |
| ... | ... | @@ -620,6 +618,39 @@ class QPDF::Doc |
| 620 | 618 | std::map<unsigned long long, Copier> copiers; |
| 621 | 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 | 654 | public: |
| 624 | 655 | Objects() = delete; |
| 625 | 656 | Objects(Objects const&) = delete; | ... | ... |