comparator是一個抽象類,它提供slice的比較,它必須是線程安全的,因為leveldb會從多個線程調用其中的方法。
代碼如下:
class LEVELDB_EXPORT Comparator {
public:
virtual ~Comparator();
//比較的傳回值:
// "a" < "b",傳回值小于0
// "a"=="b",傳回值等于0
// "a" > "b",傳回值大于0
virtual int Compare(const Slice& a, const Slice& b) const = 0;
// 比較器的名字,可以用來判斷比較器是否比對
virtual const char* Name() const = 0;
//查找start和limit之間的短的串,并指派給*start,用來節省空間
virtual void FindShortestSeparator(
std::string* start,
const Slice& limit) const = 0;
// 找一個大于等于*key的短字元串
virtual void FindShortSuccessor(std::string* key) const = 0;
};
LEVELDB_EXPORT const Comparator* BytewiseComparator();