diff options
Diffstat (limited to 'include/qpdf/Pl_StdioFile.hh')
-rw-r--r-- | include/qpdf/Pl_StdioFile.hh | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/include/qpdf/Pl_StdioFile.hh b/include/qpdf/Pl_StdioFile.hh new file mode 100644 index 00000000..d74ded3a --- /dev/null +++ b/include/qpdf/Pl_StdioFile.hh @@ -0,0 +1,49 @@ +// 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. + +// End-of-line pipeline that simply writes its data to a stdio FILE* object. + +#ifndef __PL_STDIOFILE_HH__ +#define __PL_STDIOFILE_HH__ + +#include <qpdf/Pipeline.hh> + +#include <stdio.h> + +// +// This pipeline is reusable. +// + +class Pl_StdioFile: public Pipeline +{ + public: + class Exception: public Pipeline::Exception + { + public: + Exception(std::string const& message) : + Pipeline::Exception(message) + { + } + + virtual ~Exception() throw () + { + } + }; + + // f is externally maintained; this class just writes to and + // flushes it. It does not close it. + Pl_StdioFile(char const* identifier, FILE* f); + virtual ~Pl_StdioFile(); + + virtual void write(unsigned char* buf, int len); + virtual void finish(); + + private: + FILE* file; +}; + +#endif // __PL_STDIOFILE_HH__ |