19 #ifndef INCLUDE_RCF_ZLIBCOMPRESSIONFILTER_HPP 20 #define INCLUDE_RCF_ZLIBCOMPRESSIONFILTER_HPP 25 #include <RCF/Filter.hpp> 26 #include <RCF/Export.hpp> 27 #include <RCF/Tools.hpp> 31 static const int ZlibDefaultBufferSize = 4096;
33 class ZlibCompressionReadFilter;
34 class ZlibCompressionWriteFilter;
37 std::string zlibError(
int zErr);
39 class RCF_EXPORT ZlibCompressionFilterBase :
44 ZlibCompressionFilterBase(
bool stateful,
bool serverSide);
52 void read(
const ByteBuffer &byteBuffer, std::size_t bytesRequested);
53 void write(
const std::vector<ByteBuffer> &byteBuffers);
54 void onReadCompleted(
const ByteBuffer &byteBuffer);
55 void onWriteCompleted(std::size_t bytesTransferred);
67 friend class ZlibCompressionReadFilter;
68 friend class ZlibCompressionWriteFilter;
70 std::shared_ptr<ZlibCompressionReadFilter> mReadFilter;
71 std::shared_ptr<ZlibCompressionWriteFilter> mWriteFilter;
76 class RCF_EXPORT ZlibStatelessCompressionFilter :
77 public ZlibCompressionFilterBase
80 friend class ZlibStatelessCompressionFilterFactory;
82 ZlibStatelessCompressionFilter(ServerSide *);
85 ZlibStatelessCompressionFilter();
87 int getFilterId()
const;
90 class RCF_EXPORT ZlibStatefulCompressionFilter :
91 public ZlibCompressionFilterBase
94 friend class ZlibStatefulCompressionFilterFactory;
96 ZlibStatefulCompressionFilter(ServerSide *);
99 ZlibStatefulCompressionFilter();
101 int getFilterId()
const;
104 class RCF_EXPORT ZlibStatelessCompressionFilterFactory :
108 ZlibStatelessCompressionFilterFactory();
110 FilterPtr createFilter(RcfServer & server);
114 class RCF_EXPORT ZlibStatefulCompressionFilterFactory :
118 ZlibStatefulCompressionFilterFactory();
120 FilterPtr createFilter(RcfServer & server);
124 typedef ZlibStatefulCompressionFilter ZlibCompressionFilter;
125 typedef std::shared_ptr<ZlibCompressionFilter> ZlibCompressionFilterPtr;
127 typedef ZlibStatefulCompressionFilterFactory ZlibCompressionFilterFactory;
128 typedef std::shared_ptr<ZlibCompressionFilterFactory> ZlibCompressionFilterFactoryPtr;
132 #endif // ! INCLUDE_RCF_ZLIBCOMPRESSIONFILTER_HPP Definition: AmiIoHandler.hpp:24