1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
/*
For general Scribus (>=1.3.2) copyright and licensing information please refer
to the COPYING file provided with the program. Following this notice may exist
a copyright and/or license notice that predates the release of Scribus 1.3.2
for which a new license (GPL+exception) is in place.
*/
#ifndef SCSTREAMFILTER_H
#define SCSTREAMFILTER_H
class QByteArray;
class QDataStream;
class ScStreamFilter
{
protected:
typedef enum
{
FilterToStream = 0,
FilterToFilter = 1
} FilterMode;
int m_writtenToStream;
FilterMode m_filterMode;
QDataStream* m_dataStream;
ScStreamFilter* m_filter;
bool writeDataInternal(const char* data, int dataLen);
public:
ScStreamFilter(QDataStream* stream);
ScStreamFilter(ScStreamFilter* filter);
virtual ~ScStreamFilter() {};
virtual bool openFilter (void);
virtual bool closeFilter(void);
virtual bool writeData(const QByteArray& data);
virtual bool writeData(const char* data, int dataLen) = 0;
int writtenToStream(void);
};
class ScNullEncodeFilter : public ScStreamFilter
{
public:
ScNullEncodeFilter(QDataStream* stream) : ScStreamFilter(stream) {};
ScNullEncodeFilter(ScStreamFilter* filter) : ScStreamFilter(filter) {};
virtual bool writeData(const char* data, int dataLen) { return writeDataInternal(data, dataLen); }
};
#endif
|