MCPcopy Create free account
hub / github.com/XTXMarkets/ternfs / Merge

Method Merge

cpp/core/RocksDBUtils.cpp:17–33  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

15class Int64AddOperator : public rocksdb::AssociativeMergeOperator {
16public:
17 bool Merge(
18 const rocksdb::Slice& key, const rocksdb::Slice* existing_value,
19 const rocksdb::Slice& value, std::string* new_value,
20 rocksdb::Logger* logger
21 ) const override {
22 int64_t orig_value = 0;
23 if (existing_value) {
24 orig_value = ExternalValue<I64Value>::FromSlice(*existing_value)().i64();
25 }
26 int64_t operand = ExternalValue<I64Value>::FromSlice(value)().i64();
27
28 ALWAYS_ASSERT(new_value);
29 new_value->resize(I64Value::MAX_SIZE);
30 ExternalValue<I64Value>(*new_value)().setI64(orig_value + operand);
31
32 return true;
33 }
34
35 const char* Name() const override { return "Int64AddOperator"; }
36 const char* NickName() const override { return "int64add"; }

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected