TC官方文档翻译08----内存树数据库API(Tokyo Cabinet/Tokyo Tyarnt 文档系列)

/**
 * 转载请注明出处, 由于个人技术能力有限, 英语水平欠缺,
 * 有翻译不合适或错误的地方, 请纠正,
 * 希望不要因为我的错误误导您, 希望您的智慧可以加入.
 * @translator: selfimpr
 * @mail: [email protected]
 * @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.

 

你可能感兴趣的:(数据库,struct,api,tree,存储,文档)