mirror of
https://github.com/qpdf/qpdf.git
synced 2025-01-31 02:48:31 +00:00
Add Pl_Concatenate filter
This commit is contained in:
parent
43c404b45a
commit
f07e3370f0
32
include/qpdf/Pl_Concatenate.hh
Normal file
32
include/qpdf/Pl_Concatenate.hh
Normal file
@ -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__
|
28
libqpdf/Pl_Concatenate.cc
Normal file
28
libqpdf/Pl_Concatenate.cc
Normal file
@ -0,0 +1,28 @@
|
||||
#include <qpdf/Pl_Concatenate.hh>
|
||||
|
||||
Pl_Concatenate::Pl_Concatenate(char const* identifier, Pipeline* next) :
|
||||
Pipeline(identifier, next)
|
||||
{
|
||||
}
|
||||
|
||||
Pl_Concatenate::~Pl_Concatenate()
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
Pl_Concatenate::write(unsigned char* data, size_t len)
|
||||
{
|
||||
getNext()->write(data, len);
|
||||
}
|
||||
|
||||
void
|
||||
Pl_Concatenate::finish()
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
Pl_Concatenate::manualFinish()
|
||||
{
|
||||
getNext()->finish();
|
||||
}
|
||||
|
@ -15,6 +15,7 @@ SRCS_libqpdf = \
|
||||
libqpdf/Pl_ASCII85Decoder.cc \
|
||||
libqpdf/Pl_ASCIIHexDecoder.cc \
|
||||
libqpdf/Pl_Buffer.cc \
|
||||
libqpdf/Pl_Concatenate.cc \
|
||||
libqpdf/Pl_Count.cc \
|
||||
libqpdf/Pl_Discard.cc \
|
||||
libqpdf/Pl_Flate.cc \
|
||||
|
Loading…
x
Reference in New Issue
Block a user