#include "include/cpp-btree/btree_set.h"
-#include "bluestore_common.h"
#include "BlueStore.h"
+#include "bluestore_common.h"
#include "os/kv.h"
#include "include/compat.h"
#include "include/intarith.h"
*_dout << dendl;
}
-// merge operators
-
-struct Int64ArrayMergeOperator : public KeyValueDB::MergeOperator {
- void merge_nonexistent(
- const char *rdata, size_t rlen, std::string *new_value) override {
- *new_value = std::string(rdata, rlen);
- }
- void merge(
- const char *ldata, size_t llen,
- const char *rdata, size_t rlen,
- std::string *new_value) override {
- ceph_assert(llen == rlen);
- ceph_assert((rlen % 8) == 0);
- new_value->resize(rlen);
- const ceph_le64* lv = (const ceph_le64*)ldata;
- const ceph_le64* rv = (const ceph_le64*)rdata;
- ceph_le64* nv = &(ceph_le64&)new_value->at(0);
- for (size_t i = 0; i < rlen >> 3; ++i) {
- nv[i] = lv[i] + rv[i];
- }
- }
- // We use each operator name and each prefix to construct the
- // overall RocksDB operator name for consistency check at open time.
- const char *name() const override {
- return "int64_array";
- }
-};
-
-
// Buffer
ostream& operator<<(ostream& out, const BlueStore::Buffer& b)
#include "include/intarith.h"
#include "include/ceph_assert.h"
+#include "kv/KeyValueDB.h"
template <class Bitset, class Func>
void apply_for_bitset_range(uint64_t off,
}
}
+// merge operators
+
+struct Int64ArrayMergeOperator : public KeyValueDB::MergeOperator {
+ void merge_nonexistent(
+ const char *rdata, size_t rlen, std::string *new_value) override {
+ *new_value = std::string(rdata, rlen);
+ }
+ void merge(
+ const char *ldata, size_t llen,
+ const char *rdata, size_t rlen,
+ std::string *new_value) override {
+ ceph_assert(llen == rlen);
+ ceph_assert((rlen % 8) == 0);
+ new_value->resize(rlen);
+ const ceph_le64* lv = (const ceph_le64*)ldata;
+ const ceph_le64* rv = (const ceph_le64*)rdata;
+ ceph_le64* nv = &(ceph_le64&)new_value->at(0);
+ for (size_t i = 0; i < rlen >> 3; ++i) {
+ nv[i] = lv[i] + rv[i];
+ }
+ }
+ // We use each operator name and each prefix to construct the
+ // overall RocksDB operator name for consistency check at open time.
+ const char *name() const override {
+ return "int64_array";
+ }
+};
+
#endif