2017-08-22 01:18:28 +00:00
|
|
|
/* Copyright (c) 2005-2017 Jay Berkenbilt
|
2012-12-31 02:05:17 +00:00
|
|
|
*
|
|
|
|
* 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.
|
|
|
|
*/
|
|
|
|
|
2012-07-21 09:37:14 +00:00
|
|
|
#ifndef __QPDF_FILEINPUTSOURCE_HH__
|
|
|
|
#define __QPDF_FILEINPUTSOURCE_HH__
|
|
|
|
|
|
|
|
#include <qpdf/InputSource.hh>
|
|
|
|
|
|
|
|
class FileInputSource: public InputSource
|
|
|
|
{
|
|
|
|
public:
|
2017-08-06 12:42:01 +00:00
|
|
|
QPDF_DLL
|
2012-07-21 09:37:14 +00:00
|
|
|
FileInputSource();
|
2017-08-06 12:42:01 +00:00
|
|
|
QPDF_DLL
|
2012-07-21 09:37:14 +00:00
|
|
|
void setFilename(char const* filename);
|
2017-08-06 12:42:01 +00:00
|
|
|
QPDF_DLL
|
2012-07-21 09:37:14 +00:00
|
|
|
void setFile(char const* description, FILE* filep, bool close_file);
|
2017-08-06 12:42:01 +00:00
|
|
|
QPDF_DLL
|
2012-07-21 09:37:14 +00:00
|
|
|
virtual ~FileInputSource();
|
2017-08-06 12:42:01 +00:00
|
|
|
QPDF_DLL
|
2012-07-21 09:37:14 +00:00
|
|
|
virtual qpdf_offset_t findAndSkipNextEOL();
|
2017-08-06 12:42:01 +00:00
|
|
|
QPDF_DLL
|
2012-07-21 09:37:14 +00:00
|
|
|
virtual std::string const& getName() const;
|
2017-08-06 12:42:01 +00:00
|
|
|
QPDF_DLL
|
2012-07-21 09:37:14 +00:00
|
|
|
virtual qpdf_offset_t tell();
|
2017-08-06 12:42:01 +00:00
|
|
|
QPDF_DLL
|
2012-07-21 09:37:14 +00:00
|
|
|
virtual void seek(qpdf_offset_t offset, int whence);
|
2017-08-06 12:42:01 +00:00
|
|
|
QPDF_DLL
|
2012-07-21 09:37:14 +00:00
|
|
|
virtual void rewind();
|
2017-08-06 12:42:01 +00:00
|
|
|
QPDF_DLL
|
2012-07-21 09:37:14 +00:00
|
|
|
virtual size_t read(char* buffer, size_t length);
|
2017-08-06 12:42:01 +00:00
|
|
|
QPDF_DLL
|
2012-07-21 09:37:14 +00:00
|
|
|
virtual void unreadCh(char ch);
|
|
|
|
|
|
|
|
private:
|
|
|
|
FileInputSource(FileInputSource const&);
|
|
|
|
FileInputSource& operator=(FileInputSource const&);
|
|
|
|
|
|
|
|
void destroy();
|
|
|
|
|
|
|
|
bool close_file;
|
|
|
|
std::string filename;
|
|
|
|
FILE* file;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif // __QPDF_FILEINPUTSOURCE_HH__
|