您的位置:首页 > 数据库

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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐