diff options
author | Jay Berkenbilt <ejb@ql.org> | 2008-04-29 14:55:25 +0200 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2008-04-29 14:55:25 +0200 |
commit | 9a0b88bf7777c153dc46ace22db74ef24d51583a (patch) | |
tree | f567ac1cf2bf5071a611eb49323a935b6ac938ff /include/qpdf/Pl_Buffer.hh | |
download | qpdf-9a0b88bf7777c153dc46ace22db74ef24d51583a.tar.zst |
update release date to actual daterelease-qpdf-2.0
git-svn-id: svn+q:///qpdf/trunk@599 71b93d88-0707-0410-a8cf-f5a4172ac649
Diffstat (limited to 'include/qpdf/Pl_Buffer.hh')
-rw-r--r-- | include/qpdf/Pl_Buffer.hh | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/include/qpdf/Pl_Buffer.hh b/include/qpdf/Pl_Buffer.hh new file mode 100644 index 00000000..e78b5a17 --- /dev/null +++ b/include/qpdf/Pl_Buffer.hh @@ -0,0 +1,46 @@ +// Copyright (c) 2005-2008 Jay Berkenbilt +// +// This file is part of qpdf. This software may be distributed under +// the terms of version 2 of the Artistic License which may be found +// in the source distribution. It is provided "as is" without express +// or implied warranty. + +#ifndef __PL_BUFFER_HH__ +#define __PL_BUFFER_HH__ + +// This pipeline accumulates the data passed to it into a memory +// buffer. Each subsequent use of this buffer appends to the data +// accumulated so far. getBuffer() may be called only after calling +// finish() and before calling any subsequent write(). At that point, +// a dynamically allocated Buffer object is returned and the internal +// buffer is reset. The caller is responseible for deleting the +// returned Buffer. +// +// For this pipeline, "next" may be null. If a next pointer is +// provided, this pipeline will also pass the data through to it. + +#include <qpdf/Pipeline.hh> +#include <qpdf/PointerHolder.hh> +#include <qpdf/Buffer.hh> +#include <list> + +class Pl_Buffer: public Pipeline +{ + public: + Pl_Buffer(char const* identifier, Pipeline* next = 0); + virtual ~Pl_Buffer(); + virtual void write(unsigned char*, int); + virtual void finish(); + + // Each call to getBuffer() resets this object -- see notes above. + // The caller is responsible for deleting the returned Buffer + // object. + Buffer* getBuffer(); + + private: + bool ready; + std::list<PointerHolder<Buffer> > data; + size_t total_size; +}; + +#endif // __PL_BUFFER_HH__ |