TC官方文档翻译08----内存树数据库API(Tokyo Cabinet/Tokyo Tyarnt 文档系列)
2010-06-27 03:38
561 查看
/**
* 转载请注明出处, 由于个人技术能力有限, 英语水平欠缺,
* 有翻译不合适或错误的地方, 请纠正,
* 希望不要因为我的错误误导您, 希望您的智慧可以加入.
* @translator: selfimpr
* @mail: lgg860911@yahoo.com.cn
* @blog: http://blog.csdn.net/lgg201
*/
内存树数据库
API
typedef struct {
void
*mmtx; //
锁
(
互斥对象
)
TCTREE
*tree; //TCTREE,
由此可以看出
,
内存树数据库是对
TCTREE
的简单封装
(
主要是增加了锁的机制
).
} TCNDB;
TCNDB *tcndbnew();
创建比较方法为默认的
tccmplexical, cmpop
为
NULL
的数据库
TCNDB *tcndbnew2(TCCMP cmp, void *cmpop);
创建一个
TCNDB
对象
,
出示化它的锁以及
tree
中的相关数据
(cmp
和
cmpop
参数请参见
TCTREE)
void tcndbdel(TCNDB *ndb);
删除指定数据库
,
对数据库记录的释放
,
调用的是
tctreedel
void tcndbput(TCNDB *ndb, const void *kbuf,
int ksiz, const void *vbuf, int vsiz);
向数据库中存储一条记录
.
void tcndbput2(TCNDB *ndb, const char
*kstr, const char *vstr);
tcndbput
的字符串版本
bool tcndbputkeep(TCNDB *ndb, const void
*kbuf, int ksiz, const void *vbuf, int vsiz);
插入时如果该
key
已经有值
,
则无操作
bool tcndbputkeep2(TCNDB *ndb, const char
*kstr, const char *vstr);
tcndbputkeep
的字符串版本
void tcndbputcat(TCNDB *ndb, const void
*kbuf, int ksiz, const void *vbuf, int vsiz);
插入时
,
如果该
key
已经有值
,
则直接把新值追加到原始值后面存储
.
void tcndbputcat2(TCNDB *ndb, const char
*kstr, const char *vstr);
tcndbputcat
的字符串版本
bool tcndbout(TCNDB *ndb, const void *kbuf,
int ksiz);
从数据库中删除指定
key
的记录
bool tcndbout2(TCNDB *ndb, const void
*kstr);
tcndbout
的
key
为字符串版本
void *tcndbget(TCNDB *ndb, const void
*kbuf, int ksiz, int *sp);
从数据库中检索指定
key
对应的值
,
在函数返回使
sp
将会记录该值的大小
char *tcndbget2(TCNDB *ndb, const char
*kstr);
tcndbget
的字符串版本
int tcndbvsiz(TCNDB *ndb, const void *kbuf,
int ksiz);
获取数据库中指定
key
对应值的大小
int tcndbvsiz2(TNCDB *ndb, const char
*kstr);
tcndbvsiz
的字符串版本
void tcndbiterinit(TNCDB *ndb);
初始化数据库迭代器
void *tcndbiternext(TCNDB *ndb, int *sp);
返回当前迭代点的
key
值
, sp
记录其大小
,
并将迭代点后移
char *tcndbiternext2(TCNDB *ndb);
tcndbiternext
的字符串版本
TCLIST *tcndbfwmkeys(TCNDB *ndb, const void
*pbuf, int psiz, int max);
返回以指定
key
开头的最多
max
个
key
组成的列表对象
.
首先保存一份当前普通的迭代位置
,
然后调用
tctreeiterinit2
接口
(
以指定
key
重置迭代接口
,
也就是将
tree
的
cur
指向其第一个以指定
key
开始的节点位置
)
重置迭代接口
,
然后进行迭代获取到
max
个或所有的
key
并放入创建的
TCLIST
中
,
最后把原有的普通迭代位置还原
.
TCLIST *tcndbfwmkeys2(TCNDB *ndb, const
char *pstr, int max);
tcndbfwmkeys
的字符串版本
uint64_t tcndbrnum(TCNDB *ndb);
返回数据库中的记录数
uint64_t tcndbmsiz(TCNDB *ndb);
返回数据库大小
int tcndbaddint(TCNDB *ndb, const void
*kbuf, int ksiz, int num);
向数据库指定
key
对应的值上增加
num
并返回增加后的值
double tcndbadddouble(TNCDB *ndb, const
void *kbuf, int ksiz, double num);
tcndbaddint
的
double
版
void tcndbvanish(TCNDB *ndb);
清空数据库
void tcndbcutfringe(TCNDB *ndb, int num);
删除数据库的
num
个外围节点
,
实际调用的是
tctreecutfringe.
* 转载请注明出处, 由于个人技术能力有限, 英语水平欠缺,
* 有翻译不合适或错误的地方, 请纠正,
* 希望不要因为我的错误误导您, 希望您的智慧可以加入.
* @translator: selfimpr
* @mail: lgg860911@yahoo.com.cn
* @blog: http://blog.csdn.net/lgg201
*/
内存树数据库
API
typedef struct {
void
*mmtx; //
锁
(
互斥对象
)
TCTREE
*tree; //TCTREE,
由此可以看出
,
内存树数据库是对
TCTREE
的简单封装
(
主要是增加了锁的机制
).
} TCNDB;
TCNDB *tcndbnew();
创建比较方法为默认的
tccmplexical, cmpop
为
NULL
的数据库
TCNDB *tcndbnew2(TCCMP cmp, void *cmpop);
创建一个
TCNDB
对象
,
出示化它的锁以及
tree
中的相关数据
(cmp
和
cmpop
参数请参见
TCTREE)
void tcndbdel(TCNDB *ndb);
删除指定数据库
,
对数据库记录的释放
,
调用的是
tctreedel
void tcndbput(TCNDB *ndb, const void *kbuf,
int ksiz, const void *vbuf, int vsiz);
向数据库中存储一条记录
.
void tcndbput2(TCNDB *ndb, const char
*kstr, const char *vstr);
tcndbput
的字符串版本
bool tcndbputkeep(TCNDB *ndb, const void
*kbuf, int ksiz, const void *vbuf, int vsiz);
插入时如果该
key
已经有值
,
则无操作
bool tcndbputkeep2(TCNDB *ndb, const char
*kstr, const char *vstr);
tcndbputkeep
的字符串版本
void tcndbputcat(TCNDB *ndb, const void
*kbuf, int ksiz, const void *vbuf, int vsiz);
插入时
,
如果该
key
已经有值
,
则直接把新值追加到原始值后面存储
.
void tcndbputcat2(TCNDB *ndb, const char
*kstr, const char *vstr);
tcndbputcat
的字符串版本
bool tcndbout(TCNDB *ndb, const void *kbuf,
int ksiz);
从数据库中删除指定
key
的记录
bool tcndbout2(TCNDB *ndb, const void
*kstr);
tcndbout
的
key
为字符串版本
void *tcndbget(TCNDB *ndb, const void
*kbuf, int ksiz, int *sp);
从数据库中检索指定
key
对应的值
,
在函数返回使
sp
将会记录该值的大小
char *tcndbget2(TCNDB *ndb, const char
*kstr);
tcndbget
的字符串版本
int tcndbvsiz(TCNDB *ndb, const void *kbuf,
int ksiz);
获取数据库中指定
key
对应值的大小
int tcndbvsiz2(TNCDB *ndb, const char
*kstr);
tcndbvsiz
的字符串版本
void tcndbiterinit(TNCDB *ndb);
初始化数据库迭代器
void *tcndbiternext(TCNDB *ndb, int *sp);
返回当前迭代点的
key
值
, sp
记录其大小
,
并将迭代点后移
char *tcndbiternext2(TCNDB *ndb);
tcndbiternext
的字符串版本
TCLIST *tcndbfwmkeys(TCNDB *ndb, const void
*pbuf, int psiz, int max);
返回以指定
key
开头的最多
max
个
key
组成的列表对象
.
首先保存一份当前普通的迭代位置
,
然后调用
tctreeiterinit2
接口
(
以指定
key
重置迭代接口
,
也就是将
tree
的
cur
指向其第一个以指定
key
开始的节点位置
)
重置迭代接口
,
然后进行迭代获取到
max
个或所有的
key
并放入创建的
TCLIST
中
,
最后把原有的普通迭代位置还原
.
TCLIST *tcndbfwmkeys2(TCNDB *ndb, const
char *pstr, int max);
tcndbfwmkeys
的字符串版本
uint64_t tcndbrnum(TCNDB *ndb);
返回数据库中的记录数
uint64_t tcndbmsiz(TCNDB *ndb);
返回数据库大小
int tcndbaddint(TCNDB *ndb, const void
*kbuf, int ksiz, int num);
向数据库指定
key
对应的值上增加
num
并返回增加后的值
double tcndbadddouble(TNCDB *ndb, const
void *kbuf, int ksiz, double num);
tcndbaddint
的
double
版
void tcndbvanish(TCNDB *ndb);
清空数据库
void tcndbcutfringe(TCNDB *ndb, int num);
删除数据库的
num
个外围节点
,
实际调用的是
tctreecutfringe.
相关文章推荐
- TC官方文档翻译07----内存HASH数据库API(Tokyo Cabinet/Tokyo Tyarnt 文档系列)
- TC官方文档翻译05----Hash Map对象API(Tokyo Cabinet/Tokyo Tyarnt 文档系列)
- TC官方文档翻译09----内存池对象API(Tokyo Cabinet/Tokyo Tyarnt 文档系列)
- TC官方文档翻译10----其他API(Tokyo Cabinet/Tokyo Tyarnt 文档系列)
- TC官方文档翻译02----基础API(Tokyo Cabinet/Tokyo Tyarnt 文档系列)
- TC官方文档翻译11----文件操作API(Tokyo Cabinet/Tokyo Tyarnt 文档系列)
- TC官方文档翻译03----可扩充字符串API(Tokyo Cabinet/Tokyo Tyarnt 文档系列)
- TC官方文档翻译12----编码API(Tokyo Cabinet/Tokyo Tyarnt 文档系列)
- TC官方文档翻译04----列表对象API(Tokyo Cabinet/Tokyo Tyarnt 文档系列)
- TC官方文档翻译06----Ordered Tree对象API(Tokyo Cabinet/Tokyo Tyarnt 文档系列)
- TC官方文档翻译01----TokyoCabinet简介(Tokyo Cabinet/Tokyo Tyarnt 文档系列)
- 【大数据系列】hadoop集群设置官方文档翻译
- 【大数据系列】hadoop命令指导官方文档翻译
- EXTJS4官方文档翻译系列一:类系统和编码规范
- ContentResolver官方API文档(四大方法:增删改查),个人翻译
- Android camera2官方API文档中文翻译
- 【Spring Boot&& Spring Cloud系列】单点登录SSO之OAuth2官方开发文档翻译
- OpenStack Object Storage Developer Guide/Swift官方API文档 -- 翻译 (二)
- django 1.8 官方文档翻译: 3-3-3 文件储存API
- 详解ConstraintLayout,Google官方API文档翻译