LevelDB 文件操作
来源:互联网 发布:keil软件调试 编辑:程序博客网 时间:2024/05/12 21:13
LevelDB 文件操作
flyfish 2015-9-30
三个接口
SequentialFile
RandomAccessFile
WritableFile
class Slice{ private: const char* data_; size_t size_;};Sli
ce包括指向外部字符数组的指针和它的长度
string和Slice之间转换很方便
// A file abstraction for reading sequentially through a fileclass SequentialFile { public: SequentialFile() { } virtual ~SequentialFile(); virtual Status Read(size_t n, Slice* result, char* scratch) = 0; virtual Status Skip(uint64_t n) = 0;};
// A file abstraction for randomly reading the contents of a file.class RandomAccessFile { public: RandomAccessFile() { } virtual ~RandomAccessFile(); virtual Status Read(uint64_t offset, size_t n, Slice* result, char* scratch) const = 0;};
class WritableFile { public: WritableFile() { } virtual ~WritableFile(); virtual Status Append(const Slice& data) = 0; virtual Status Close() = 0; virtual Status Flush() = 0; virtual Status Sync() = 0; private: // No copying allowed WritableFile(const WritableFile&); void operator=(const WritableFile&);};
每个接口有几个函数,这几个接口在各个平台下有自个的实现
这几个纯虚函数 必须在派生类中实现
class SequentialFileImpl : public SequentialFile{};class RandomAccessFileImpl : public RandomAccessFile{};class WritableFileImpl : public WritableFile{};
为了移植性文件操作最终抽象成接口env的一部分
0 0
- LevelDB 文件操作
- LevelDB Compaction操作
- LevelDB文件结构
- leveldb之log文件
- leveldb之文件
- C++操作leveldb示例笔记
- leveldb之Put、Get操作
- leveldb之log写操作
- leveldb之Put、Get操作
- levelDB源码分析-Log文件
- levelDB之三:log文件
- LevelDb之四:SSTable文件
- leveldb抽取写文件代码
- leveldb:VersionEdit与MANIFEST文件
- LevelDb
- LevelDb
- LevelDb
- leveldb
- spring MVC 与 ajax 交互 json格式遇见的415、json解析错误
- AQUOS CRYSTAL 306sh Boost版激活教程
- 【POJ】 Instant Complexity (模拟)
- mybatis 增删改查
- 《php和mysql web开发》笔记——第6章 面向对象的PHP
- LevelDB 文件操作
- tableview的相关属性
- iOS 毛玻璃效果
- cocos2D v3.x 中action的回调block变化
- 变量(对象)“生命期”和“作用域”的关系
- WikipediaExtractor 使用心得
- linux互斥锁pthread_mutex_t 的使用
- NSTimer相关
- 解决:Mac下WireShark中interface为空