1 / 12
文档名称:

Zookeeper C API 指南六(异步 API 介绍).doc

格式:doc   大小:14KB   页数:12页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Zookeeper C API 指南六(异步 API 介绍).doc

上传人:学习好资料 2021/11/12 文件大小:14 KB

下载得到文件列表

Zookeeper C API 指南六(异步 API 介绍).doc

相关文档

文档介绍

文档介绍:Zookeeper C API 指南六(异步 API 介绍)
上一讲《Zookeeper C API 指南五(同步 API 介绍)》讲了Zookeeper 同步 API 的分类和相关解释,相信大家对 Zookeeper 同步 API 也有了一个大致的了解,本文我会给大家介绍 Zookeeper C API 中的异步调用的函数(即以 zoo_a* 开头的函数),本文大致结构与《Zookeeper C API 指南五(同步 API 介绍)》,先汇总 API,然后再分类,并对每个 API 作出解释。
在具体讲解 Zookeeper 异步 API 之前,首先回顾一下《Zookeeper C API 指南三(回调函数)》,除了监视器回调函数以外,还有其他 7 种回调函数,他们通常在异步 API 调用结束或 Zookeeper 客户端失去连接时被调用。根据回调函数返回参数(即函数的输出参数)的类型不同分为以下几类:返回 void 类型的回调函数,返回 Stat 结构的回调函数,返回字符串的回调函数,返回数据的回调函数,返回字符串列表(a list of string)的回调函数,同时返回字符串列表(a list of string)和 Stat 结构的回调函数,以及返回 ACL 信息的回调函数,7 中回调函数原型声明如下:
// 返回 void 类型的回调函数
typedef void(* void_completion_t)(int rc, const void *data);
// 返回 Stat 结构的回调函数
typedef void(* stat_completion_t)(int rc, const struct Stat *stat, const void *data);
// 返回字符串的回调函数
typedef void(* string_completion_t)(int rc, const char *value, const void *data);
// 返回数据的回调函数
typedef void(* data_completion_t)(int rc, const char *value, int value_len, const struct Stat *stat, const void *data);
// 返回字符串列表(a list of string)的回调函数
typedef void(* strings_completion_t)(int rc, const struct String_vector *strings, const void *data);
// 同时返回字符串列表(a list of string)和 Stat 结构的回调函数
typedef void(* strings_stat_completion_t)(int rc, const struct String_vector *strings, const struct Stat *stat, const void *data);
// 以及返回 ACL 信息的回调函数
typedef void(* acl_completion_t)(int rc, struct ACL_vector *acl, struct Stat *stat, const void *data);
可能这么说还不是很理解,那么我们以异步创建 znode 节点(zoo_acreate())为例解释一下:
zoo_acreate函数原型如下:
ZOOAPI int zoo_acreate(zhandle_t * zh, const char *path,
const char *value, int valuelen,
const struct ACL_vector *acl, int flags,
string_completion_t completion, const void *data);
其中参数 string_completion_t completion 即返回字符串的回调函数,那么当 zoo_acreate 调用结束时将会触发 completion 回调函数的调用,同时传递给 completion 的 rc 参数为: ZOK 操作完成;ZNONODE 父节点不存在;ZNODEEXISTS 节点已存在;ZNOAUTH 客户端没有权限创建节点。ZNOCHILDRENFOREPHEMERA