diff options
author | Tobias Hoffmann <thobi@worker> | 2012-06-27 07:00:18 +0200 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2012-06-27 16:20:38 +0200 |
commit | f07e3370f029d1e4ab0df676ec1fb9ccfbeb708a (patch) | |
tree | fae43001f9a9f6f5c68d730f15956140ab6c4031 /include | |
parent | 43c404b45ab54583a33492adc93f54fa349c2f94 (diff) | |
download | qpdf-f07e3370f029d1e4ab0df676ec1fb9ccfbeb708a.tar.zst |
Add Pl_Concatenate filter
Diffstat (limited to 'include')
-rw-r--r-- | include/qpdf/Pl_Concatenate.hh | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/include/qpdf/Pl_Concatenate.hh b/include/qpdf/Pl_Concatenate.hh new file mode 100644 index 00000000..1b0cb1a9 --- /dev/null +++ b/include/qpdf/Pl_Concatenate.hh @@ -0,0 +1,32 @@ +#ifndef __PL_CONCATENATE_HH__ +#define __PL_CONCATENATE_HH__ + +// This pipeline will drop all regular finished calls rather than +// passing them onto next. To finish downstream streams, call +// manualFinish. This makes it possible to pipe multiple streams +// (e.g. with QPDFObjectHandle::pipeStreamData) to a downstream like +// Pl_Flate that can't handle multiple calls to finish(). + +#include <qpdf/Pipeline.hh> + +class Pl_Concatenate: public Pipeline +{ + public: + QPDF_DLL + Pl_Concatenate(char const* identifier, Pipeline* next); + QPDF_DLL + virtual ~Pl_Concatenate(); + + QPDF_DLL + virtual void write(unsigned char* data, size_t len); + + QPDF_DLL + virtual void finish(); + + // At the very end, call manualFinish actually finish the rest of + // the pipeline. + QPDF_DLL + void manualFinish(); +}; + +#endif // __PL_CONCATENATE_HH__ |