简介
Slice在LevelDB中作为高效的参数对象而设计,你可以使用任何数据类型来创建leveldb::Slice对象,而且这些对象在LevelDB的很多接口中作为参数来进行传递。本文将介绍LevelDB重要的参数对象Slice的实现,涉及的LevelDB的版本为1.20。
Slice实现
Slice类的实现在include/leveldb/slice.h中:
class Slice {
public:
// Create an empty slice.
Slice() : data_(""), size_(0) {
}
// Create a slice that refers to d[0,n-1].
Slice(const char* d, size_t n) : data_(d), size_(n) {
}
// Create a slice that refers to the contents of "s"
Slice(const std::string& s) : data_(s.data()), size_(s.size()) {
}
// Create a slice that refers to s[0,strlen(s)-1]
Slice(const char* s) : data_(s), size_(strlen(s)) {
}
// Return a pointer to the beginning of the referenced data
const char* data() const {
</