]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
compressor: put Compressor into TOPNSPC namespace
authorKefu Chai <kchai@redhat.com>
Sat, 21 Nov 2020 09:26:37 +0000 (17:26 +0800)
committerKefu Chai <kchai@redhat.com>
Sun, 6 Dec 2020 04:13:42 +0000 (12:13 +0800)
we want to add the support for on-the-wire compression to msgr v2, and
this feature will be shared by classic osd and crimson. but
Compressor.cc is also used by bluestore which is linked against by
crimson also. Compressor depends on CephContext which has two different
implementation in two namespaces for classic osd and crison.

so to avoid violating ODR, we should also put Compressor into two
different namespaces so it can be shared by alienstore and crimson in
the same executable.

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/compressor/CompressionPlugin.h
src/compressor/Compressor.cc
src/compressor/Compressor.h

index 5e0ed777b85ea1633abe2f07885fedf87eac8665..2a21f2fef2736607a49e3c1f7796b274981d1e55 100644 (file)
 #include <iostream>
 
 #include "common/PluginRegistry.h"
+#include "include/common_fwd.h"
 #include "Compressor.h"
 
 namespace ceph {
 
   class CompressionPlugin :  public Plugin {
   public:
-    CompressorRef compressor;
+    TOPNSPC::CompressorRef compressor;
 
-    explicit CompressionPlugin(CephContext *cct) : Plugin(cct),
-                                          compressor(0) 
+    explicit CompressionPlugin(CephContext *cct)
+      : Plugin(cct)
     {}
     
     ~CompressionPlugin() override {}
 
-    virtual int factory(CompressorRef *cs,
-                                         std::ostream *ss) = 0;
+    virtual int factory(TOPNSPC::CompressorRef *cs,
+                       std::ostream *ss) = 0;
 
     virtual const char* name() {return "CompressionPlugin";}
   };
index e6faae164f1efd9cdb1df4ffa614cdd3d2d9292d..4cd3406d7a9f55a764eef9fb91823d29739c30a9 100644 (file)
@@ -24,6 +24,8 @@
 #include "common/debug.h"
 #include "common/dout.h"
 
+namespace TOPNSPC {
+
 const char* Compressor::get_comp_alg_name(int a) {
 
   auto p = std::find_if(std::cbegin(compression_algorithms), std::cend(compression_algorithms),
@@ -100,3 +102,5 @@ CompressorRef Compressor::create(CephContext *cct, int alg)
   std::string type_name = get_comp_alg_name(alg);
   return create(cct, type_name);
 }
+
+} // namespace TOPNSPC
index 6a4eb2776686a7673c2a705b5b87b4f121d03f2b..d615e866b55aeaa39af4b271ce9c59c301340e51 100644 (file)
@@ -27,6 +27,8 @@
   #include "QatAccel.h"
 #endif
 
+namespace TOPNSPC {
+
 class Compressor;
 typedef std::shared_ptr<Compressor> CompressorRef;
 
@@ -103,4 +105,5 @@ protected:
 
 };
 
+} // namespace TOPNSPC
 #endif