forked from iabudiab/ObjectiveRocks
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathRocksDBCallbackComparator.cpp
More file actions
41 lines (33 loc) · 1.01 KB
/
RocksDBCallbackComparator.cpp
File metadata and controls
41 lines (33 loc) · 1.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//
// RocksDBCallbackComparator.cpp
// ObjectiveRocks
//
// Created by Iska on 22/11/14.
// Copyright (c) 2014 BrainCookie. All rights reserved.
//
#import "RocksDBCallbackComparator.h"
class RocksDBCallbackComparatorImpl : public rocksdb::Comparator
{
private:
void* instance;
const char* name;
CompareCallback callback;
public:
RocksDBCallbackComparatorImpl(void* instance,
const char* name,
CompareCallback callback): instance(instance), name(name), callback(callback) {}
virtual const char* Name() const
{
return name;
}
virtual int Compare(const rocksdb::Slice& a, const rocksdb::Slice& b) const
{
return callback(instance, a, b);
}
virtual void FindShortestSeparator(std::string* start,
const rocksdb::Slice& limit) const {}
virtual void FindShortSuccessor(std::string* key) const {}
};
const rocksdb::Comparator* RocksDBCallbackComparator(void* instance, const char* name, CompareCallback callback) {
return new RocksDBCallbackComparatorImpl(instance, name, callback);
}