From 34c2ea9f096c2dd48536181d081096ccab913752 Mon Sep 17 00:00:00 2001 From: Ved-vampir Date: Fri, 10 Jun 2016 17:13:23 +0300 Subject: [PATCH] compressor: zlib compressor plugin cleanup Signed-off-by: Alyona Kiseleva --- src/compressor/zlib/CMakeLists.txt | 2 +- src/compressor/zlib/CompressionPluginZlib.cc | 4 +-- src/compressor/zlib/Makefile.am | 4 +-- .../{CompressionZlib.cc => ZlibCompressor.cc} | 25 +++++++++---------- .../{CompressionZlib.h => ZlibCompressor.h} | 7 +++--- src/test/compressor/test_compression_zlib.cc | 10 ++++---- 6 files changed, 25 insertions(+), 27 deletions(-) rename src/compressor/zlib/{CompressionZlib.cc => ZlibCompressor.cc} (84%) rename src/compressor/zlib/{CompressionZlib.h => ZlibCompressor.h} (88%) diff --git a/src/compressor/zlib/CMakeLists.txt b/src/compressor/zlib/CMakeLists.txt index 77766dc9fa0e..f80131e7b608 100644 --- a/src/compressor/zlib/CMakeLists.txt +++ b/src/compressor/zlib/CMakeLists.txt @@ -2,7 +2,7 @@ set(zlib_sources CompressionPluginZlib.cc - CompressionZlib.cc + ZlibCompressor.cc ) add_library(ceph_zlib SHARED ${zlib_sources}) diff --git a/src/compressor/zlib/CompressionPluginZlib.cc b/src/compressor/zlib/CompressionPluginZlib.cc index 90fd561d2d61..7140fccba2f7 100644 --- a/src/compressor/zlib/CompressionPluginZlib.cc +++ b/src/compressor/zlib/CompressionPluginZlib.cc @@ -16,7 +16,7 @@ // ----------------------------------------------------------------------------- #include "ceph_ver.h" #include "compressor/CompressionPlugin.h" -#include "CompressionZlib.h" +#include "ZlibCompressor.h" #include "common/debug.h" #define dout_subsys ceph_subsys_mon @@ -32,7 +32,7 @@ public: ostream *ss) { if (compressor == 0) { - CompressionZlib *interface = new CompressionZlib(); + ZlibCompressor *interface = new ZlibCompressor(); compressor = CompressorRef(interface); } *cs = compressor; diff --git a/src/compressor/zlib/Makefile.am b/src/compressor/zlib/Makefile.am index 7f97ea424a00..a0056123b89b 100644 --- a/src/compressor/zlib/Makefile.am +++ b/src/compressor/zlib/Makefile.am @@ -1,12 +1,12 @@ # zlib plugin noinst_HEADERS += \ - compressor/zlib/CompressionZlib.h + compressor/zlib/ZlibCompressor.h zlib_sources = \ common/buffer.cc \ compressor/Compressor.cc \ compressor/zlib/CompressionPluginZlib.cc \ - compressor/zlib/CompressionZlib.cc + compressor/zlib/ZlibCompressor.cc compressor/zlib/CompressionPluginZlib.cc: ./ceph_ver.h diff --git a/src/compressor/zlib/CompressionZlib.cc b/src/compressor/zlib/ZlibCompressor.cc similarity index 84% rename from src/compressor/zlib/CompressionZlib.cc rename to src/compressor/zlib/ZlibCompressor.cc index 27aba8cf464d..747ffae132e5 100644 --- a/src/compressor/zlib/CompressionZlib.cc +++ b/src/compressor/zlib/ZlibCompressor.cc @@ -14,7 +14,7 @@ // ----------------------------------------------------------------------------- #include "common/debug.h" -#include "CompressionZlib.h" +#include "ZlibCompressor.h" #include "osd/osd_types.h" // ----------------------------------------------------------------------------- @@ -31,13 +31,13 @@ static ostream& _prefix(std::ostream* _dout) { - return *_dout << "CompressionZlib: "; + return *_dout << "ZlibCompressor: "; } // ----------------------------------------------------------------------------- const long unsigned int max_len = 2048; -int CompressionZlib::compress(const bufferlist &in, bufferlist &out) +int ZlibCompressor::compress(const bufferlist &in, bufferlist &out) { int ret; unsigned have; @@ -56,8 +56,6 @@ int CompressionZlib::compress(const bufferlist &in, bufferlist &out) return -1; } - unsigned char c_out [max_len]; - for (std::list::const_iterator i = in.buffers().begin(); i != in.buffers().end();) { @@ -72,7 +70,8 @@ int CompressionZlib::compress(const bufferlist &in, bufferlist &out) do { strm.avail_out = max_len; - strm.next_out = c_out; + bufferptr ptr = buffer::create_page_aligned(max_len); + strm.next_out = (unsigned char*)ptr.c_str(); ret = deflate(&strm, flush); /* no bad return value */ if (ret == Z_STREAM_ERROR) { dout(1) << "Compression error: compress return Z_STREAM_ERROR(" @@ -81,7 +80,7 @@ int CompressionZlib::compress(const bufferlist &in, bufferlist &out) return -1; } have = max_len - strm.avail_out; - out.append((char*)c_out, have); + out.append(ptr, 0, have); } while (strm.avail_out == 0); if (strm.avail_in != 0) { dout(10) << "Compression error: unused input" << dendl; @@ -94,7 +93,7 @@ int CompressionZlib::compress(const bufferlist &in, bufferlist &out) return 0; } -int CompressionZlib::decompress(bufferlist::iterator &p, size_t compressed_size, bufferlist &out) +int ZlibCompressor::decompress(bufferlist::iterator &p, size_t compressed_size, bufferlist &out) { int ret; unsigned have; @@ -114,8 +113,7 @@ int CompressionZlib::decompress(bufferlist::iterator &p, size_t compressed_size, return -1; } - unsigned char c_out[max_len]; - size_t remaining = MIN( p.get_remaining(), compressed_size); + size_t remaining = MIN(p.get_remaining(), compressed_size); while(remaining) { long unsigned int len = p.get_ptr_and_advance(remaining, &c_in); @@ -125,7 +123,8 @@ int CompressionZlib::decompress(bufferlist::iterator &p, size_t compressed_size, do { strm.avail_out = max_len; - strm.next_out = c_out; + bufferptr ptr = buffer::create_page_aligned(max_len); + strm.next_out = (unsigned char*)ptr.c_str(); ret = inflate(&strm, Z_NO_FLUSH); if (ret != Z_OK && ret != Z_STREAM_END && ret != Z_BUF_ERROR) { dout(1) << "Decompression error: decompress return " @@ -134,7 +133,7 @@ int CompressionZlib::decompress(bufferlist::iterator &p, size_t compressed_size, return -1; } have = max_len - strm.avail_out; - out.append((char*)c_out, have); + out.append(ptr, 0, have); } while (strm.avail_out == 0); } @@ -144,7 +143,7 @@ int CompressionZlib::decompress(bufferlist::iterator &p, size_t compressed_size, return 0; } -int CompressionZlib::decompress(const bufferlist &in, bufferlist &out) +int ZlibCompressor::decompress(const bufferlist &in, bufferlist &out) { bufferlist::iterator i = const_cast(in).begin(); return decompress(i, in.length(), out); diff --git a/src/compressor/zlib/CompressionZlib.h b/src/compressor/zlib/ZlibCompressor.h similarity index 88% rename from src/compressor/zlib/CompressionZlib.h rename to src/compressor/zlib/ZlibCompressor.h index 133f91232fb1..7cac1a68b1a5 100644 --- a/src/compressor/zlib/CompressionZlib.h +++ b/src/compressor/zlib/ZlibCompressor.h @@ -19,11 +19,10 @@ #include "compressor/Compressor.h" -class CompressionZlib : public Compressor { - const char version = '1'; - +class ZlibCompressor : public Compressor { public: - CompressionZlib() : Compressor("zlib") {} + ZlibCompressor() : Compressor("zlib") {} + int compress(const bufferlist &in, bufferlist &out) override; int decompress(const bufferlist &in, bufferlist &out) override; int decompress(bufferlist::iterator &p, size_t compressed_len, bufferlist &out) override; diff --git a/src/test/compressor/test_compression_zlib.cc b/src/test/compressor/test_compression_zlib.cc index 642264b3380e..4932fbd6ff85 100644 --- a/src/test/compressor/test_compression_zlib.cc +++ b/src/test/compressor/test_compression_zlib.cc @@ -19,14 +19,14 @@ #include #include #include "global/global_init.h" -#include "compressor/zlib/CompressionZlib.h" +#include "compressor/zlib/ZlibCompressor.h" #include "common/ceph_argparse.h" #include "global/global_context.h" #include "common/config.h" -TEST(CompressionZlib, compress_decompress) +TEST(ZlibCompressor, compress_decompress) { - CompressionZlib sp; + ZlibCompressor sp; EXPECT_STREQ(sp.get_type().c_str(), "zlib"); const char* test = "This is test text"; int len = strlen(test); @@ -49,9 +49,9 @@ TEST(CompressionZlib, compress_decompress) EXPECT_TRUE(exp.contents_equal(after)); } -TEST(CompressionZlib, compress_decompress_chunk) +TEST(ZlibCompressor, compress_decompress_chunk) { - CompressionZlib sp; + ZlibCompressor sp; EXPECT_STREQ(sp.get_type().c_str(), "zlib"); const char* test = "This is test text"; buffer::ptr test2 ("1234567890", 10); -- 2.47.3