18 #ifndef INCLUDE_RCF_ZLIBCOMPRESSIONFILTER_HPP 19 #define INCLUDE_RCF_ZLIBCOMPRESSIONFILTER_HPP 24 #include <RCF/Filter.hpp> 25 #include <RCF/Export.hpp> 26 #include <RCF/Tools.hpp> 30 static const int ZlibDefaultBufferSize = 4096;
32 class ZlibCompressionReadFilter;
33 class ZlibCompressionWriteFilter;
36 std::string zlibError(
int zErr);
38 class RCF_EXPORT ZlibCompressionFilterBase :
43 ZlibCompressionFilterBase(
bool stateful,
bool serverSide);
51 void read(
const ByteBuffer &byteBuffer, std::size_t bytesRequested);
52 void write(
const std::vector<ByteBuffer> &byteBuffers);
53 void onReadCompleted(
const ByteBuffer &byteBuffer);
54 void onWriteCompleted(std::size_t bytesTransferred);
66 friend class ZlibCompressionReadFilter;
67 friend class ZlibCompressionWriteFilter;
69 std::shared_ptr<ZlibCompressionReadFilter> mReadFilter;
70 std::shared_ptr<ZlibCompressionWriteFilter> mWriteFilter;
75 class RCF_EXPORT ZlibStatelessCompressionFilter :
76 public ZlibCompressionFilterBase
79 friend class ZlibStatelessCompressionFilterFactory;
81 ZlibStatelessCompressionFilter(ServerSide *);
84 ZlibStatelessCompressionFilter();
86 int getFilterId()
const;
89 class RCF_EXPORT ZlibStatefulCompressionFilter :
90 public ZlibCompressionFilterBase
93 friend class ZlibStatefulCompressionFilterFactory;
95 ZlibStatefulCompressionFilter(ServerSide *);
98 ZlibStatefulCompressionFilter();
100 int getFilterId()
const;
103 class RCF_EXPORT ZlibStatelessCompressionFilterFactory :
107 ZlibStatelessCompressionFilterFactory();
109 FilterPtr createFilter(RcfServer & server);
113 class RCF_EXPORT ZlibStatefulCompressionFilterFactory :
117 ZlibStatefulCompressionFilterFactory();
119 FilterPtr createFilter(RcfServer & server);
123 typedef ZlibStatefulCompressionFilter ZlibCompressionFilter;
124 typedef std::shared_ptr<ZlibCompressionFilter> ZlibCompressionFilterPtr;
126 typedef ZlibStatefulCompressionFilterFactory ZlibCompressionFilterFactory;
127 typedef std::shared_ptr<ZlibCompressionFilterFactory> ZlibCompressionFilterFactoryPtr;
131 #endif // ! INCLUDE_RCF_ZLIBCOMPRESSIONFILTER_HPP Definition: AmiIoHandler.hpp:23