#include <string>
#include <cerrno>
-using std::string;
-
#include "common/debug.h"
#include "common/perf_counters.h"
#undef dout_prefix
#define dout_prefix *_dout << "leveldb: "
+using std::list;
+using std::string;
+using std::ostream;
+using std::pair;
+using std::vector;
+
+using ceph::bufferlist;
+using ceph::bufferptr;
+
class CephLevelDBLogger : public leveldb::Logger {
CephContext *cct;
public:
return 0;
}
-int LevelDBStore::open(ostream &out, const vector<ColumnFamily>& cfs) {
+int LevelDBStore::open(ostream &out, const std::string& cfs) {
if (!cfs.empty()) {
ceph_abort_msg("Not implemented");
}
return do_open(out, false);
}
-int LevelDBStore::create_and_open(ostream &out, const vector<ColumnFamily>& cfs) {
+int LevelDBStore::create_and_open(ostream &out, const std::string& cfs) {
if (!cfs.empty()) {
ceph_abort_msg("Not implemented");
}
filterpolicy.reset(_filterpolicy);
ldoptions.filter_policy = filterpolicy.get();
#else
- ceph_abort_msg(0 == "bloom size set but installed leveldb doesn't support bloom filters");
+ ceph_abort_msg("bloom size set but installed leveldb doesn't support bloom filters");
#endif
}
if (options.compression_enabled)
LevelDBStore::~LevelDBStore()
{
close();
- delete logger;
-
- // Ensure db is destroyed before dependent db_cache and filterpolicy
- db.reset();
- delete ceph_logger;
}
void LevelDBStore::close()
compact_queue_lock.unlock();
}
- if (logger)
+ if (logger) {
cct->get_perfcounters_collection()->remove(logger);
+ delete logger;
+ logger = nullptr;
+ }
+
+ // Ensure db is destroyed before dependent db_cache and filterpolicy
+ db.reset();
+ delete ceph_logger;
}
int LevelDBStore::repair(std::ostream &out)