// 结构体列表
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 整理总结 (二) —— SearchAPI

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

  4. Elasticsearch Java Rest Client API 整理总结 (三)——Building Queries

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

  5. HTML5 <Audio>标签API整理(三)

    一.浏览器支持 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. IE7下使用兼容Icon-Font CSS类

    Iconfont在IE7下需要使用unicode方式,但是这种方式不太方便,使用以下代码可使IE7像普通用法使用. @font-face {font-family: "anticon&quo ...

  2. JMX/RMI Nice ENGAGE <= 6.5 Remote Command Execution

    CVE ID : CVE-2019-7727 JMX/RMI Nice ENGAGE <= 6.5 Remote Command Execution description=========== ...

  3. PHP数组函数详解大全

    一.数组操作的基本函数 数组的键名和值 array_values($arr);获得数组的值 array_keys($arr);获得数组的键名 array_flip($arr);数组中的值与键名互换(如 ...

  4. SpringMVC+Apache Shiro+JPA(hibernate)整合配置

    序: 关于标题: 说是教学,实在愧不敢当,但苦与本人文笔有限,实在找不到更合理,谦逊的词语表达,只能先这样定义了. 其实最真实的想法,只是希望这个关键词能让更多的人浏览到这篇文章,也算是对于自己写文章 ...

  5. 通过命令修改mysql的提示符(转)

    本文转自冲出地球的博客原文链接:https://www.cnblogs.com/zhengchenhui/p/6649235.html 在cmd窗口操作mysql数据库的时候,前面的提示符永远都是my ...

  6. 004 使用scrapy框架爬虫

    0. 建立housePro的scrapy爬虫框架 # 1. 在终端输入,建立housePro项目scrapy startproject housePro# 2. 进入houseProcd houseP ...

  7. MySQL:参数wait_timeout和interactive_timeout以及空闲超时的实现【转】

    一.参数意思 这里简单解释一下两个参数,含义如下: interactive_timeout:The number of seconds the server waits for activity on ...

  8. 龙芯yl8089无声音的解决方案

    网上搜索到的解决方法都是卸载pulseaudio,但这种方法比较暴力不能从根本上解决问题. 经过一段时间的排查,我发现最终问题出现在resample-method上. 由于内核内CS5536 AC97 ...

  9. js 字符串切割

    对于字符串的切割截取平时所用可能不是特别多,而且分的比较细,所以自备自查.有备无患. 由于之前所有均在一个demo测试,若是哪里打错了,敬请谅解.一些其余属性找时间继续添加. 1.函数:split() ...

  10. 算法工程师<机器学习基础>

    <机器学习基础> 逻辑回归,SVM,决策树 1.逻辑回归和SVM的区别是什么?各适用于解决什么问题? https://www.zhihu.com/question/24904422 2.L ...