]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
kv: unify {create_and_,}open() methods
authorKefu Chai <kchai@redhat.com>
Mon, 9 Oct 2017 08:52:20 +0000 (16:52 +0800)
committerKefu Chai <kchai@redhat.com>
Mon, 9 Oct 2017 13:50:26 +0000 (21:50 +0800)
this silences the warning of "-Woverloaded-virtual" where create() and
create_and_open() from KeyValueDB are hidden from the ones defined in
derived classes.

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/kv/KeyValueDB.h
src/kv/KineticStore.cc
src/kv/KineticStore.h
src/kv/LevelDBStore.cc
src/kv/LevelDBStore.h
src/kv/MemDB.cc
src/kv/MemDB.h
src/kv/RocksDBStore.cc
src/kv/RocksDBStore.h
src/test/ObjectMap/KeyValueDBMemory.h

index 0815568c9f5933ca39c2d1e3508d97ebb78370a5..54b55a50307961023fe4b01d5be792f215884fbd 100644 (file)
@@ -156,17 +156,11 @@ public:
   /// test whether we can successfully initialize; may have side effects (e.g., create)
   static int test_init(const std::string& type, const std::string& dir);
   virtual int init(string option_str="") = 0;
-  virtual int open(std::ostream &out) = 0;
-  virtual int open(std::ostream &out, const vector<ColumnFamily>& cfs) {
-    assert(0 == "Not implemented");
-  }
-  virtual int create_and_open(std::ostream &out) = 0;
-  virtual void close() { }
+  virtual int open(std::ostream &out, const vector<ColumnFamily>& cfs = {}) = 0;
   // vector cfs contains column families to be created when db is created.
   virtual int create_and_open(std::ostream &out,
-                             const vector<ColumnFamily>& cfs) {
-    assert(0 == "Not implemented");
-  }
+                             const vector<ColumnFamily>& cfs = {}) = 0;
+  virtual void close() { }
 
   virtual Transaction get_transaction() = 0;
   virtual int submit_transaction(Transaction) = 0;
index ddbd48720f8ae25f944ec61f7532e5d5ec090ee9..5d5359b00960ceb469e48786499dde95795cfef5 100644 (file)
@@ -45,6 +45,22 @@ int KineticStore::_test_init(CephContext *c)
   return status.ok() ? 0 : -EIO;
 }
 
+int KineticStore::open(ostream &out, const vector<ColumnFamily>& cfs)
+{
+  if (!cfs.empty()) {
+    assert(0 == "Not implemented");
+  }
+  return do_open(out, false);
+}
+
+int KineticStore::create_and_open(ostream &out, const vector<ColumnFamily>& cfs)
+{
+  if (!cfs.empty()) {
+    assert(0 == "Not implemented");
+  }
+  return do_open(out, true);
+}
+
 int KineticStore::do_open(ostream &out, bool create_if_missing)
 {
   kinetic::KineticConnectionFactory conn_factory =
index 8e9dd7ad77fa79bab945bfe69b6453bfa61b982f..ddeab98dafc2700bfbdbede6745e6130319d54d7 100644 (file)
@@ -52,13 +52,9 @@ public:
   int init();
 
   /// Opens underlying db
-  int open(ostream &out) {
-    return do_open(out, false);
-  }
+  int open(ostream &out, const std::vector<ColumnFamily>& = {}) override;
   /// Creates underlying db if missing and opens it
-  int create_and_open(ostream &out) override {
-    return do_open(out, true);
-  }
+  int create_and_open(ostream &out, const std::vector<ColumnFamily>& = {}) override;
 
   void close();
 
index f4fc12057f78058da012668f5d9fcc614ca0d79b..e124c1a537b94d07ba31d4bc0f45e9228b70b259 100644 (file)
@@ -61,6 +61,20 @@ int LevelDBStore::init(string option_str)
   return 0;
 }
 
+int LevelDBStore::open(ostream &out, const vector<ColumnFamily>& cfs)  {
+  if (!cfs.empty()) {
+    assert(0 == "Not implemented");
+  }
+  return do_open(out, false);
+}
+
+int LevelDBStore::create_and_open(ostream &out, const vector<ColumnFamily>& cfs) {
+  if (!cfs.empty()) {
+    assert(0 == "Not implemented");
+  }
+  return do_open(out, true);
+}
+
 int LevelDBStore::do_open(ostream &out, bool create_if_missing)
 {
   leveldb::Options ldoptions;
index e32bf5c2305b3642e35b80f01acb5d1485f687b1..ca08430e67a8681e31208c0c8efd9fddad81620e 100644 (file)
@@ -174,13 +174,9 @@ public:
   int init(string option_str="") override;
 
   /// Opens underlying db
-  int open(ostream &out) override {
-    return do_open(out, false);
-  }
+  int open(ostream &out, const std::vector<ColumnFamily>& = {}) override;
   /// Creates underlying db if missing and opens it
-  int create_and_open(ostream &out) override {
-    return do_open(out, true);
-  }
+  int create_and_open(ostream &out, const std::vector<ColumnFamily>& = {}) override;
 
   void close() override;
 
index d6af78b182706e1a5ad191d9750b2373c0817f09..7e5ffac46f7fbe53c35b2c0e80b784cad12d819c 100644 (file)
@@ -167,6 +167,20 @@ int MemDB::do_open(ostream &out, bool create)
   return _init(create);
 }
 
+int MemDB::open(ostream &out, const vector<ColumnFamily>& cfs) {
+  if (!cfs.empty()) {
+    assert(0 == "Not implemented");
+  }
+  return do_open(out, false);
+}
+
+int MemDB::create_and_open(ostream &out, const vector<ColumnFamily>& cfs) {
+  if (!cfs.empty()) {
+    assert(0 == "Not implemented");
+  }
+  return do_open(out, true);
+}
+
 MemDB::~MemDB()
 {
   close();
index 7486821ae562786e7922145db55020ef58eade59..dcdcb3abbf1e5794d2c565d3859063e00a8a59b9 100644 (file)
@@ -122,8 +122,9 @@ public:
   int _init(bool format);
 
   int do_open(ostream &out, bool create);
-  int open(ostream &out) override { return do_open(out, false); }
-  int create_and_open(ostream &out) override { return do_open(out, true); }
+  int open(ostream &out, const std::vector<ColumnFamily>&) override;
+  int create_and_open(ostream &out, const std::vector<ColumnFamily>&) override;
+  using KeyValueDB::create_and_open;
 
   KeyValueDB::Transaction get_transaction() override {
     return std::shared_ptr<MDBTransactionImpl>(new MDBTransactionImpl(this));
index 49f903dbbda2c13df9b54e34286fd4db16812e41..0fd20cde61133438c9c651cb9944b0d76e0bf7b3 100644 (file)
@@ -309,21 +309,17 @@ int RocksDBStore::install_cf_mergeop(
   return 0;
 }
 
-int RocksDBStore::create_and_open(ostream &out)
-{
-  int r = create_db_dir();
-  if (r < 0)
-    return r;
-  return do_open(out, true);
-}
-
 int RocksDBStore::create_and_open(ostream &out,
                                  const vector<ColumnFamily>& cfs)
 {
   int r = create_db_dir();
   if (r < 0)
     return r;
-  return do_open(out, true, &cfs);
+  if (cfs.empty()) {
+    return do_open(out, true, nullptr);
+  } else {
+    return do_open(out, true, &cfs);
+  }
 }
 
 int RocksDBStore::do_open(ostream &out, bool create_if_missing,
index a552fef0178190a5122a3f6fa80d9bdf998885f7..0cd93f7c641e42e512bd9dcaf08c77f1f6642edc 100644 (file)
@@ -157,16 +157,12 @@ public:
 
   static bool check_omap_dir(string &omap_dir);
   /// Opens underlying db
-  int open(ostream &out) override {
-    return do_open(out, false);
-  }
-  int open(ostream &out, const vector<ColumnFamily>& cfs) override {
+  int open(ostream &out, const vector<ColumnFamily>& cfs = {}) override {
     return do_open(out, false, &cfs);
   }
   /// Creates underlying db if missing and opens it
-  int create_and_open(ostream &out) override;
   int create_and_open(ostream &out,
-                     const vector<ColumnFamily>& cfs) override;
+                     const vector<ColumnFamily>& cfs = {}) override;
 
   void close() override;
 
index 9f73d2d8d4621c5e899a97e789d393c1852dd4dd..f82762d4fcbe1985a8d058cb09768def3f074849 100644 (file)
@@ -22,10 +22,10 @@ public:
   int init(string _opt) override {
     return 0;
   }
-  int open(ostream &out) override {
+  int open(std::ostream &out, const vector<ColumnFamily>& cfs = {}) override {
     return 0;
   }
-  int create_and_open(ostream &out) override {
+  int create_and_open(ostream &out, const vector<ColumnFamily>& cfs = {}) override {
     return 0;
   }