]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
compressor: add a get_type() method to Compressor interface
authorSage Weil <sage@redhat.com>
Fri, 20 May 2016 18:18:52 +0000 (14:18 -0400)
committerSage Weil <sage@redhat.com>
Wed, 1 Jun 2016 15:40:47 +0000 (11:40 -0400)
Signed-off-by: Sage Weil <sage@redhat.com>
src/compressor/Compressor.h
src/compressor/snappy/SnappyCompressor.h
src/compressor/zlib/CompressionZlib.cc
src/compressor/zlib/CompressionZlib.h
src/test/compressor/compressor_example.h
src/test/compressor/test_compression_snappy.cc
src/test/compressor/test_compression_zlib.cc

index a82b3189e5b4c5fdb2c12b38b1ee8e291db80150..f75c651c40e8144dd4fd104f57908d70706b0d98 100644 (file)
 class Compressor;
 typedef shared_ptr<Compressor> CompressorRef;
 
-
 class Compressor {
+  string type;
  public:
+  Compressor(string t) : type(t) {}
   virtual ~Compressor() {}
+  const string& get_type() const {
+    return type;
+  }
   virtual int compress(const bufferlist &in, bufferlist &out) = 0;
   virtual int decompress(const bufferlist &in, bufferlist &out) = 0;
-  virtual int decompress(bufferlist::iterator &p, bufferlist &out) = 0; //that's a bit weird but we need non-const iterator to be in alignment with decode methods
+  // this is a bit weird but we need non-const iterator to be in
+  // alignment with decode methods
+  virtual int decompress(bufferlist::iterator &p, bufferlist &out) = 0;
 
   static CompressorRef create(CephContext *cct, const string &type);
 };
 
-
-
 #endif
index 296a11b45da399575aefd64ade901413244e6886..2fc748ae7fbbab5066d50d1a935471422f21a50b 100644 (file)
@@ -44,12 +44,9 @@ class CEPH_BUFFER_API BufferlistSource : public snappy::Source {
 };
 
 class SnappyCompressor : public Compressor {
-
-
  public:
-  virtual ~SnappyCompressor() {}
-  virtual const char* get_method_name() { return "snappy"; }
-  virtual int compress(const bufferlist &src, bufferlist &dst) {
+  SnappyCompressor() : Compressor("snappy") {}
+  int compress(const bufferlist &src, bufferlist &dst) override {
     BufferlistSource source(const_cast<bufferlist&>(src).begin());
     bufferptr ptr(snappy::MaxCompressedLength(src.length()));
     snappy::UncheckedByteArraySink sink(ptr.c_str());
@@ -57,11 +54,11 @@ class SnappyCompressor : public Compressor {
     dst.append(ptr, 0, sink.CurrentDestination()-ptr.c_str());
     return 0;
   }
-  virtual int decompress(const bufferlist &src, bufferlist &dst) {
+  int decompress(const bufferlist &src, bufferlist &dst) override {
     bufferlist::iterator i = const_cast<bufferlist&>(src).begin();
     return decompress(i, dst);
   }
-  virtual int decompress(bufferlist::iterator &p, bufferlist &dst) {
+  int decompress(bufferlist::iterator &p, bufferlist &dst) override {
     size_t res_len = 0;
     // Trick, decompress only need first 32bits buffer
     bufferlist::const_iterator ptmp = p;
index 5ca1084bc0e3dced15df38f5dd4aa419231e589a..d8a28fa064b033aba74408a10785c7a02c8fc205 100644 (file)
@@ -37,11 +37,6 @@ _prefix(std::ostream* _dout)
 
 const long unsigned int max_len = 2048;
 
-const char* CompressionZlib::get_method_name()
-{
-       return "zlib";
-}
-
 int CompressionZlib::compress(const bufferlist &in, bufferlist &out)
 {
   int ret;
index ccd59a734d37940ff3e2014a955507451d5cf02b..21acb65ac1efd98d733236000bc2aa7f1524b1c6 100644 (file)
@@ -1,3 +1,5 @@
+// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
+// vim: ts=8 sw=2 smarttab
 /*
  * Ceph - scalable distributed file system
  *
  *
  */
 
-
 #ifndef CEPH_COMPRESSION_ZLIB_H
 #define CEPH_COMPRESSION_ZLIB_H
 
-// -----------------------------------------------------------------------------
 #include "compressor/Compressor.h"
-// -----------------------------------------------------------------------------
-#include <list>
-// -----------------------------------------------------------------------------
 
 class CompressionZlib : public Compressor {
-       const char version = '1';
-public:
-
-  CompressionZlib()
-  {
-  }
-
-  virtual
-  ~CompressionZlib()
-  {
-  }
-
-  virtual int compress(const bufferlist &in, bufferlist &out);
-  virtual int decompress(const bufferlist &in, bufferlist &out);
-  virtual int decompress(bufferlist::iterator &p, bufferlist &out);
-  virtual const char* get_method_name();
+  const char version = '1';
 
+public:
+  CompressionZlib() : Compressor("zlib") {}
+  int compress(const bufferlist &in, bufferlist &out) override;
+  int decompress(const bufferlist &in, bufferlist &out) override;
+  int decompress(bufferlist::iterator &p, bufferlist &out) override;
  };
 
 
index 3b8b07b86107d782b6d920726a81387907543788..f02aafb18263b828c70ea506e939ec146abd1be5 100644 (file)
@@ -29,6 +29,7 @@
 
 class CompressorExample : public Compressor {
 public:
+  CompressorExample() : Compressor("example") {}
   virtual ~CompressorExample() {}
 
   virtual int compress(const bufferlist &in, bufferlist &out)
@@ -47,11 +48,6 @@ public:
     p.copy(p.get_remaining(), out);
     return 0;
   }
-  virtual const char* get_method_name()
-  {
-    return "example";
-  }
-
 };
 
 #endif
index ee318d9d8efff70de2611eb9c4d92d65dca806fc..e8bfe1bba76e24ea106d08ae3ba3d7d1ed09962a 100644 (file)
@@ -26,7 +26,7 @@
 TEST(SnappyCompressor, compress_decompress)
 {
   SnappyCompressor sp;
-  EXPECT_EQ(sp.get_method_name(), "snappy");
+  EXPECT_EQ(sp.get_type(), "snappy");
   const char* test = "This is test text";
   int len = strlen(test);
   bufferlist in, out;
@@ -43,7 +43,7 @@ TEST(SnappyCompressor, sharded_input_decompress)
   const size_t small_prefix_size=3;
 
   SnappyCompressor sp;
-  EXPECT_EQ(sp.get_method_name(), "snappy");
+  EXPECT_EQ(sp.get_type(), "snappy");
   string test(128*1024,0);
   int len = test.size();
   bufferlist in, out;
index 50cc38d083e5bb42336ebd8e6e62d9fbd02f4a40..e3706018ce3048bb1e494d1dd9a02f8f5bcc78c1 100644 (file)
@@ -27,7 +27,7 @@
 TEST(CompressionZlib, compress_decompress)
 {
   CompressionZlib sp;
-  EXPECT_STREQ(sp.get_method_name(), "zlib");
+  EXPECT_STREQ(sp.get_type(), "zlib");
   const char* test = "This is test text";
   int len = strlen(test);
   bufferlist in, out;
@@ -45,7 +45,7 @@ TEST(CompressionZlib, compress_decompress)
 TEST(CompressionZlib, compress_decompress_chunk)
 {
   CompressionZlib sp;
-  EXPECT_STREQ(sp.get_method_name(), "zlib");
+  EXPECT_STREQ(sp.get_type(), "zlib");
   const char* test = "This is test text";
   buffer::ptr test2 ("1234567890", 10);
   int len = strlen(test);