LevelDB C API 整理分类

时间:2022-12-22 09:40:18
// 结构体列表
typedef struct leveldb_t leveldb_t; // 数据库
typedef struct leveldb_cache_t leveldb_cache_t; // 缓存
typedef struct leveldb_comparator_t leveldb_comparator_t; // 比较器
typedef struct leveldb_env_t leveldb_env_t; // 环境
typedef struct leveldb_filelock_t leveldb_filelock_t; // 文件锁
typedef struct leveldb_filterpolicy_t leveldb_filterpolicy_t; // 过滤器
typedef struct leveldb_iterator_t leveldb_iterator_t; // 迭代器
typedef struct leveldb_logger_t leveldb_logger_t; // 日志
typedef struct leveldb_options_t leveldb_options_t; // 选项
typedef struct leveldb_randomfile_t leveldb_randomfile_t; //
typedef struct leveldb_readoptions_t leveldb_readoptions_t; // 读选项
typedef struct leveldb_seqfile_t leveldb_seqfile_t; //
typedef struct leveldb_snapshot_t leveldb_snapshot_t; // 快照
typedef struct leveldb_writablefile_t leveldb_writablefile_t; //
typedef struct leveldb_writebatch_t leveldb_writebatch_t; // 批写入
typedef struct leveldb_writeoptions_t leveldb_writeoptions_t; // 写选项 // 函数列表 /************************************************************ 数据库API *********************************************************************/
// 打开数据库
extern leveldb_t* leveldb_open( const leveldb_options_t* options,const char* name,char** errptr);
// 关闭数据库
extern void leveldb_close(leveldb_t* db);
// 添加k-v
extern void leveldb_put(leveldb_t* db,const leveldb_writeoptions_t* options, const char* key, size_t keylen,const char* val, size_t vallen,char** errptr);
// 删除k-v
extern void leveldb_delete(leveldb_t* db,const leveldb_writeoptions_t* options,const char* key, size_t keylen,char** errptr);
// 原子性写入
extern void leveldb_write(leveldb_t* db,const leveldb_writeoptions_t* options,leveldb_writebatch_t* batch,char** errptr);
// 获取k-v
extern char* leveldb_get(leveldb_t* db,const leveldb_readoptions_t* options,const char* key, size_t keylen,size_t* vallen,char** errptr);
// 获取属性值
extern char* leveldb_property_value(leveldb_t* db,const char* propname);
// 获取数据库大概的大小
extern void leveldb_approximate_sizes(leveldb_t* db,int num_ranges,const char* const* range_start_key, const size_t* range_start_key_len,const char* const* range_limit_key, const size_t* range_limit_key_len,uint64_t* sizes);
// 范围压缩
extern void leveldb_compact_range(leveldb_t* db,const char* start_key, size_t start_key_len,const char* limit_key, size_t limit_key_len);
// 销毁数据库
extern void leveldb_destroy_db(const leveldb_options_t* options,const char* name,char** errptr);
// 修复数据库
extern void leveldb_repair_db(const leveldb_options_t* options,const char* name,char** errptr);
//
extern void leveldb_free(void* ptr); /************************************************************ 迭代器API *********************************************************************/
// 创建迭代器
extern leveldb_iterator_t* leveldb_create_iterator(leveldb_t* db,const leveldb_readoptions_t* options);
extern void leveldb_iter_destroy(leveldb_iterator_t*);
extern unsigned char leveldb_iter_valid(const leveldb_iterator_t*);
extern void leveldb_iter_seek_to_first(leveldb_iterator_t*);
extern void leveldb_iter_seek_to_last(leveldb_iterator_t*);
extern void leveldb_iter_seek(leveldb_iterator_t*, const char* k, size_t klen);
extern void leveldb_iter_next(leveldb_iterator_t*);
extern void leveldb_iter_prev(leveldb_iterator_t*);
extern const char* leveldb_iter_key(const leveldb_iterator_t*, size_t* klen);
extern const char* leveldb_iter_value(const leveldb_iterator_t*, size_t* vlen);
extern void leveldb_iter_get_error(const leveldb_iterator_t*, char** errptr); /************************************************************ 批量写入API *******************************************************************/
//
extern leveldb_writebatch_t* leveldb_writebatch_create();
extern void leveldb_writebatch_destroy(leveldb_writebatch_t*);
extern void leveldb_writebatch_clear(leveldb_writebatch_t*);
extern void leveldb_writebatch_put(leveldb_writebatch_t*,const char* key, size_t klen,const char* val, size_t vlen);
extern void leveldb_writebatch_delete(leveldb_writebatch_t*,const char* key, size_t klen);
extern void leveldb_writebatch_iterate(leveldb_writebatch_t*,void* state,void (*put)(void*, const char* k, size_t klen, const char* v, size_t vlen),void (*deleted)(void*, const char* k, size_t klen)); /************************************************************** 选项器API *********************************************************************/
//
extern leveldb_options_t* leveldb_options_create();
extern void leveldb_options_destroy(leveldb_options_t*);
extern void leveldb_options_set_comparator(leveldb_options_t*,leveldb_comparator_t*);
extern void leveldb_options_set_filter_policy(leveldb_options_t*,leveldb_filterpolicy_t*);
extern void leveldb_options_set_create_if_missing(leveldb_options_t*, unsigned char);
extern void leveldb_options_set_error_if_exists(leveldb_options_t*, unsigned char);
extern void leveldb_options_set_paranoid_checks(leveldb_options_t*, unsigned char);
extern void leveldb_options_set_env(leveldb_options_t*, leveldb_env_t*);
extern void leveldb_options_set_info_log(leveldb_options_t*, leveldb_logger_t*);
extern void leveldb_options_set_write_buffer_size(leveldb_options_t*, size_t);
extern void leveldb_options_set_max_open_files(leveldb_options_t*, int);
extern void leveldb_options_set_cache(leveldb_options_t*, leveldb_cache_t*);
extern void leveldb_options_set_block_size(leveldb_options_t*, size_t);
extern void leveldb_options_set_block_restart_interval(leveldb_options_t*, int); enum {
leveldb_no_compression = 0,
leveldb_snappy_compression = 1
};
extern void leveldb_options_set_compression(leveldb_options_t*, int); /************************************************************** 比较器API *********************************************************************/
//
extern leveldb_comparator_t* leveldb_comparator_create(
void* state,
void (*destructor)(void*),
int (*compare)(
void*,
const char* a, size_t alen,
const char* b, size_t blen),
const char* (*name)(void*));
extern void leveldb_comparator_destroy(leveldb_comparator_t*); /************************************************************** 过滤器API *********************************************************************/
//
extern leveldb_filterpolicy_t* leveldb_filterpolicy_create(
void* state,
void (*destructor)(void*),
char* (*create_filter)(
void*,
const char* const* key_array, const size_t* key_length_array,
int num_keys,
size_t* filter_length),
unsigned char (*key_may_match)(
void*,
const char* key, size_t length,
const char* filter, size_t filter_length),
const char* (*name)(void*));
extern void leveldb_filterpolicy_destroy(leveldb_filterpolicy_t*); extern leveldb_filterpolicy_t* leveldb_filterpolicy_create_bloom(int bits_per_key); /************************************************************** 读选项API *********************************************************************/
//
extern leveldb_readoptions_t* leveldb_readoptions_create();
extern void leveldb_readoptions_destroy(leveldb_readoptions_t*);
extern void leveldb_readoptions_set_verify_checksums(leveldb_readoptions_t*,unsigned char);
extern void leveldb_readoptions_set_fill_cache(leveldb_readoptions_t*, unsigned char);
extern void leveldb_readoptions_set_snapshot(leveldb_readoptions_t*,const leveldb_snapshot_t*); /************************************************************** 写选项API *********************************************************************/
// 创建写入选项变量
extern leveldb_writeoptions_t* leveldb_writeoptions_create();
// 销毁
extern void leveldb_writeoptions_destroy(leveldb_writeoptions_t*);
// 设置写入选项是否异步方式写入
extern void leveldb_writeoptions_set_sync(leveldb_writeoptions_t*, unsigned char); /**************************************************************** 缓存API *********************************************************************/
// 安居lru算法创建缓存
extern leveldb_cache_t* leveldb_cache_create_lru(size_t capacity);
// 销毁缓存
extern void leveldb_cache_destroy(leveldb_cache_t* cache); /************************************************************ 环境API **********************************************************************/
// 创建默认环境变量
extern leveldb_env_t* leveldb_create_default_env();
// 销毁环境变量
extern void leveldb_env_destroy(leveldb_env_t*); /************************************************************ 快照API **********************************************************************/
// 创建快照
extern const leveldb_snapshot_t* leveldb_create_snapshot(leveldb_t* db);
// 释放快照
extern void leveldb_release_snapshot(leveldb_t* db,const leveldb_snapshot_t* snapshot); /************************************************************ 工具API **********************************************************************/
// 获取主版本好
extern int leveldb_major_version();
// 获取子版本号
extern int leveldb_minor_version();

  

LevelDB C API 整理分类的更多相关文章

  1. canvas学习之API整理笔记(二)

    前面我整理过一篇文章canvas学习之API整理笔记(一),从这篇文章我们已经可以基本了解到常用绘图的API.简单的变换和动画.而本篇文章的主要内容包括高级动画.像素操作.性能优化等知识点,讲解每个知 ...

  2. HTML5 <Audio/>标签Api整理(二)

    1.实例2: 相对较完整 Html代码: <style> #volumeSlider .slider-selection { background:#bababa; } </styl ...

  3. Elasticsearch Java Rest Client API 整理总结 &lpar;二&rpar; —— SearchAPI

    目录 引言 Search APIs Search API Search Request 可选参数 使用 SearchSourceBuilder 构建查询条件 指定排序 高亮请求 聚合请求 建议请求 R ...

  4. Elasticsearch Java Rest Client API 整理总结 &lpar;三&rpar;——Building Queries

    目录 上篇回顾 Building Queries 匹配所有的查询 全文查询 Full Text Queries 什么是全文查询? Match 全文查询 API 列表 基于词项的查询 Term Term ...

  5. HTML5 &lt&semi;Audio&gt&semi;标签API整理&lpar;三&rpar;

    一.浏览器支持 Internet Explorer 9+, Firefox, Opera, Chrome, 和 Safari 都支持 <audio> 元素. 注意: Internet Ex ...

  6. 【转】Bootstrap FileInput中文API整理

    Bootstrap FileInput中文API整理 这段时间做项目用到bootstrap fileinput插件上传文件,在用的过程中,网上能查到的api都不是很全,所以想着整理一份比较详细的文档, ...

  7. Bootstrap FileInput 上传 中文 API 整理

    Bootstrap FileInput 上传  中文 API 整理 上传插件有很多 但是公司用的就是 Bootstrap FileInput 自己就看了看  会用就行 自己都不知道每个值是干嘛用的就问 ...

  8. qq开放平台可以应用到网页游戏的api整理

    创建角色界面api整理 一.需求描述 1.  创建角色名称可以用qq空间昵称代替 2.  如果玩家是在新区玩的话,赠送老玩家支持礼包 3.  可以看到,好友xxx也在玩,而且到了多少等级,如果加为好友 ...

  9. OpenLayers API整理

    整理的Openlayers 的知识笔记,随着运用不断加深理解,也会不断更新. 本文链接:Openlayers API整理 作者:狐狸家的鱼 GitHub:八至 一.创建地图 1.地图Map 创建地图底 ...

随机推荐

  1. 无法将类型&OpenCurlyDoubleQuote;System&period;Collections&period;Generic&period;IEnumerable&lt&semi;EmailSystem&period;Model&period;TemplateInfo&gt&semi;”隐式转换为&OpenCurlyDoubleQuote;System&period;Collections&period;Generic&period;List&lt&semi;EmailSystem&period;Model&period;TemplateInf

    List<Model.Template> templateList = templateBLL.RecommendTemplateByOrder(modelEbay); List<M ...

  2. 利用文本编辑器输入课堂上练习的Hello&period;java,并在JDK环境下编译和运行。

  3. 编译、裁剪、安装、删除 Ubuntu内核和模块管理

    一.下载最新内核文件 地址:http://www.kernel.org,一般下载Full Source版本. 下载完毕后,放到任意文件夹中,使用命令: tar jxvf linux-x.x.x.tar ...

  4. 深入浅出Java Dom4j读取XML

    在以前自己使用的xml较少,只是了解其很强大,现在可算是在DRP中,真正的开始使用它了,以前只是简单的理解xml,xml即可扩展标记语言,简单的使用,具体是什么?怎么用?还是一直让自己期待的. 首先来 ...

  5. 面试官&colon; 说说看&comma; 什么是 Hook &lpar;钩子&rpar; 线程以及应用场景&quest;

    文章首发自个人微信号: 小哈学Java 个人网站地址: https://www.exception.site/java-concurrency/java-concurrency-hook-thread ...

  6. Spring 依赖注入中 Field 注入的有害性

    大致分为:Field 注入.构造注入.setter 注入 其中 Field 注入被认为有害的: 1. 违反了单一原则 当一个 class 中有多个依赖时,如果仅仅使用 Field 注入,则看不出有很多 ...

  7. css 使元素居中

    css使元素水平居中 1.对于行内元素的水平居中 给父元素设置text-align:center <div style="text-align:center;">居中显 ...

  8. Ubuntu18&period;04 搭建zookeeper单机版集群

    一台电脑启动三个虚拟机比较折腾,这里就用一台虚拟机模拟一下zk集群. 1.后台下载安装包到 /opt目录 sudo wget -b http://archive.apache.org/dist/zoo ...

  9. akka cluster 初体验

    cluster 配置 akka { actor { provider = "akka.cluster.ClusterActorRefProvider" } remote { log ...

  10. 20165225《Java程序设计》第八周学习总结

    20165225<Java程序设计>第八周学习总结 1.视频与课本中的学习: 第十二章学习总结 1.继承Thread类创建线程,程序中如果想要获取当前线程对象可以使用方法:Thread.c ...