日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

zookeeper C API

發布時間:2025/4/9 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 zookeeper C API 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
typedef void (*watcher_fn)(zhandle_t *zh, int type, int state, const char *path,void *watcherCtx); watch回調函數,兩種watch事件通知方式: 1.legacy:預先實現watch回調函數并將函數指針傳入zookeeper_init,然后使用其他api設置watch。 (即在init函數中設置watcher,然后后邊調用時,設置整型值watch來表明使用或者不使用watcher) 2.watcher object:一個函數指針和一個watcher上下文指針。watch觸發時,兩者結合調用。使用此類型,需使用'w'前綴api,如zoo_awexists、zoo_wget等.(直接使用回調函數) zhandle_t *zookeeper_init(const char *host, watcher_fn fn, int recv_timeout, const clientid_t *clientid, void *context, int flags); 創建與ZooKeeper服務端通信的句柄和對應于此句柄的會話。會話的創建過程是異步的,收到ZOO_CONNECTED_STATE狀態事件后,確認會話成功建立。 int zookeeper_close(zhandle_t *zh); 關閉句柄,釋放資源。調用函數后,會話將不可用,函數返回前會將未發送完畢的請求發送完,所以可能會引起阻塞。 對一個句柄來說,這個方法只許調用一次,調用多次將產生不確定的結果。對于調用過此方法的句柄,其他句柄操作也將產生不確定的結果。const clientid_t *zoo_client_id(zhandle_t *zh); 返回客戶端會話id,僅在與服務端連接正常時有效int zoo_recv_timeout(zhandle_t *zh); 返回會話超時時間,僅在于服務端連接正常時有效,該值在與服務器重連后可能改變const void *zoo_get_context(zhandle_t *zh); 返回句柄上下文void zoo_set_context(zhandle_t *zh, void *context); 設置句柄上下文watcher_fn zoo_set_watcher(zhandle_t *zh,watcher_fn newFn); 設置watch回調,返回之前的watch回調struct sockaddr* zookeeper_get_connected_host(zhandle_t *zh, struct sockaddr *addr, socklen_t *addr_len); 返回服務端的網絡地址(sockaddr結構),僅在與服務端連接正常是有效int zookeeper_interest(zhandle_t *zh, int *fd, int *interest, struct timeval *tv); 暫時不太理解,可能是返回zookeeper在監聽某個fd的讀或者寫int zookeeper_process(zhandle_t *zh, int events); 暫時不太理解,通知zookeeper監聽的事件發生了typedef void (*void_completion_t)(int rc, const void *data); 函數類型定義,異步調用或連接斷開或連接超時執行的回調類型typedef void (*stat_completion_t)(int rc, const struct Stat *stat, const void *data); 同上,有返回值typedef void (*data_completion_t)(int rc, const char *value, int value_len, const struct Stat *stat, const void *data); 同上,返回詳細數據typedef void (*strings_completion_t)(int rc, const struct String_vector *strings, const void *data); 同上typedef void (*strings_stat_completion_t)(int rc, const struct String_vector *strings, const struct Stat *stat, const void *data); 同上typedef void (*string_completion_t)(int rc, const char *value, const void *data); 同上typedef void (*acl_completion_t)(int rc, struct ACL_vector *acl, struct Stat *stat, const void *data); 同上int zoo_state(zhandle_t *zh); 返回句柄狀態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); 創建一個之前不存在的節點。如果設置ZOO_EPHEMERAL,客戶端會話失效,節點將自動刪除;如果設置ZOO_SEQUENCE,一個唯一的自動增加的序列號附加到路徑名,序列號寬度是10個數字的寬度,不足用0填充int zoo_adelete(zhandle_t *zh, const char *path, int version, void_completion_t completion, const void *data); 刪除一個節點int zoo_aexists(zhandle_t *zh, const char *path, int watch, stat_completion_t completion, const void *data); 檢查一個節點是否存在int zoo_awexists(zhandle_t *zh, const char *path, watcher_fn watcher, void* watcherCtx, stat_completion_t completion, const void *data); 檢查一個節點是否存在,它允許指定一個watcher對象(一個函數指針watcher和對應的上下文watcherCtx),在watch解除時,此函數會調用,watcherCtx作為watcher的傳入參數int zoo_aget(zhandle_t *zh, const char *path, int watch, data_completion_t completion, const void *data); 獲取節點數據(legacy方式)。completion是回調函數,其rc參數可能是以下參數:ZOK-完成,ZNONODE-節點不存在,ZNOAUTH-客戶端無權限int zoo_awget(zhandle_t *zh, const char *path, watcher_fn watcher, void* watcherCtx, data_completion_t completion, const void *data); 獲取節點數據(watcher object方式)。int zoo_aset(zhandle_t *zh, const char *path, const char *buffer, int buflen, int version, stat_completion_t completion, const void *data); 設置節點數據int zoo_aget_children(zhandle_t *zh, const char *path, int watch, strings_completion_t completion, const void *data); 獲取子節點列表(legacy)int zoo_awget_children(zhandle_t *zh, const char *path, watcher_fn watcher, void* watcherCtx, strings_completion_t completion, const void *data); 獲取子節點列表(watcher object)int zoo_aget_children2(zhandle_t *zh, const char *path, int watch, strings_stat_completion_t completion, const void *data); 獲取子節點列表,3.3.0版本加入(legacy)int zoo_awget_children2(zhandle_t *zh, const char *path, watcher_fn watcher, void* watcherCtx, strings_stat_completion_t completion, const void *data); 獲取子節點列表,3.3.0版本加入(watcher object)int zoo_async(zhandle_t *zh, const char *path, string_completion_t completion, const void *data); Flush leader channel. 暫時不明確int zoo_aget_acl(zhandle_t *zh, const char *path, acl_completion_t completion, const void *data); 獲取節點的ACL。ACL描述了操作該節點所需具備的條件,即哪些人(id)具備哪些權限后才允許對節點執行哪些操作。int zoo_aset_acl(zhandle_t *zh, const char *path, int version, struct ACL_vector *acl, void_completion_t, const void *data); 設置節點的ACLint zoo_amulti(zhandle_t *zh, int count, const zoo_op_t *ops, zoo_op_result_t *results, void_completion_t, const void *data); 以原子方式執行一系列操作const char* zerror(int c); 返回錯誤信息int zoo_add_auth(zhandle_t *zh, const char* scheme, const char* cert, int certLen, void_completion_t completion, const void *data); 為應用程序指定證書。調用此函數用于認證的證書。服務端用scheme指定的安全服務對客戶端連接進行認證。 如果認證失敗,將與服務端斷開連接,watcher觸發,狀態碼是ZOO_AUTH_FAILED_STATEint is_unrecoverable(zhandle_t *zh); 檢查zookeeper連接是否可恢復void zoo_set_debug_level(ZooLogLevel logLevel); 設置調試級別void zoo_set_log_stream(FILE* logStream); 設置用于記錄日志的文件流。默認使用stderr。若logStream為NULL,則使用默認值stderr。void zoo_deterministic_conn_order(int yesOrNo); 用于啟用或停用quarum端點的隨機化排序,通常僅在測試時使用。 如果非0,使得client連接到quarum端按照被初始化的順序。 如果是0,zookeeper_init將變更端點順序,使得client連接分布在更優的端點上。int zoo_create(zhandle_t *zh, const char *path, const char *value, int valuelen, const struct ACL_vector *acl, int flags, char *path_buffer, int path_buffer_len); 同步建立節點int zoo_delete(zhandle_t *zh, const char *path, int version); 同步刪除節點int zoo_exists(zhandle_t *zh, const char *path, int watch, struct Stat *stat); 同步檢查節點是否存在int zoo_wexists(zhandle_t *zh, const char *path, watcher_fn watcher, void* watcherCtx, struct Stat *stat); 同步檢查節點是否存在(watcher object)int zoo_get(zhandle_t *zh, const char *path, int watch, char *buffer, int* buffer_len, struct Stat *stat); 同步獲取節點數據(legacy)int zoo_wget(zhandle_t *zh, const char *path, watcher_fn watcher, void* watcherCtx, char *buffer, int* buffer_len, struct Stat *stat); 同步獲取節點數據(watcher object)int zoo_set(zhandle_t *zh, const char *path, const char *buffer, int buflen, int version); 同步設置節點數據int zoo_set2(zhandle_t *zh, const char *path, const char *buffer, int buflen, int version, struct Stat *stat); 同步設置節點數據并返回當前節點的stat信息int zoo_get_children(zhandle_t *zh, const char *path, int watch, struct String_vector *strings); 同步獲取子節點列表(legacy)int zoo_wget_children(zhandle_t *zh, const char *path, watcher_fn watcher, void* watcherCtx, struct String_vector *strings); 同步獲取子節點列表(watcher object)int zoo_get_children2(zhandle_t *zh, const char *path, int watch, struct String_vector *strings, struct Stat *stat); 同步獲取子節點列表并返回當前節點的stat信息(legacy),3.3.0版本加入int zoo_wget_children2(zhandle_t *zh, const char *path, watcher_fn watcher, void* watcherCtx, struct String_vector *strings, struct Stat *stat); 同步獲取子節點列表并返回當前節點的stat信息(watcher object),3.3.0版本加入int zoo_get_acl(zhandle_t *zh, const char *path, struct ACL_vector *acl, struct Stat *stat); 同步獲取節點ACLint zoo_set_acl(zhandle_t *zh, const char *path, int version, const struct ACL_vector *acl); 同步設置節點ACLint zoo_multi(zhandle_t *zh, int count, const zoo_op_t *ops, zoo_op_result_t *results); 同步以原子方式執行一系列操作


說明:keeper C API 大部分接口可以根據同步和異步特性分為兩類,同步接口以 zoo_* 開頭,異步接口以則以 zoo_a* 開頭。以w開頭的函數表明使用watcher回調函數而不是整型watch和zookeeper中注冊的watcher函數。

轉自 :?http://www.cnblogs.com/caosiyang/archive/2012/11/09/2763190.html

轉載于:https://www.cnblogs.com/catkins/p/5270464.html

總結

以上是生活随笔為你收集整理的zookeeper C API的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中文字幕在线视频一区 | 伊人网av| 91视频毛片| 国产精品乱码久久久久久 | 黄色免费高清 | 蜜桃视频一区二区三区在线观看 | 国产熟女高潮一区二区三区 | 黄色av视屏 | 亚洲熟妇中文字幕五十中出 | 免费黄色短片 | 国产视频精品免费 | 人人人射| 色综合中文 | 伊人三区 | 伦理欧美 | 给我看高清的视频在线观看 | 夜夜艹| 小泽玛利亚一区二区三区视频 | 五月天丁香激情 | 日韩视频免费 | 欧美老熟妇喷水 | 日韩精品2区| 一本色道久久88加勒比—综合 | 久久精品片 | 男女午夜爽爽 | 亚洲欧美va天堂人熟伦 | 亚洲一区在线免费观看 | 美女福利视频在线观看 | 欧美男女交配视频 | 亚洲国产成人91porn | 四虎影视永久免费观看 | 青青草自拍视频 | 午夜精品福利电影 | 国产xxxx在线观看 | 美女网站一区 | 麻豆亚洲 | 鲁片一区二区三区 | youjizz国产精品 | 久久依人网 | 佐佐木明希电影 | 大屁股白浆一区二区三区 | 欧美绿帽合集videosex | 亚洲色图欧美 | 女人叉开腿让男人桶 | 高清无码一区二区在线观看吞精 | av天堂永久资源网 | 韩国久久久久 | 怡春院国产 | 少妇导航av | 99热黄色 | 我会温柔一点的日剧 | 国产成人麻豆精品午夜在线 | 91久久久久久久久 | 日韩高清成人 | 激情图片在线观看 | 99国产精品国产精品九九 | 美女大逼| 久久综合成人 | av中文字幕免费 | 国产91在线精品 | 双性尿奴穿贞c带憋尿 | 亚洲激情中文 | 黄色小视频入口 | 美女网站在线免费观看 | 亚洲情涩 | 免费欧美一级片 | 久久久国产精品久久久 | 黄色在线视频网站 | 顶级尤物极品女神福利视频 | 欧美乱妇高清无乱码 | www.色人阁| 欧美大胆视频 | 免费精品视频在线观看 | av在线男人天堂 | www.黄色小说.com | 国产白丝在线观看 | 一个人在线观看www软件 | 中文字幕23 | 国产黄站| 强伦人妻一区二区三区视频18 | 天堂在线中文资源 | 国产51页 | 醉酒壮男gay强迫野外xx | 成人在线免费av | 超碰导航 | 久操成人| 超碰天天| 国产尤物网站 | 福利视频在线播放 | 日韩在线不卡视频 | 老司机成人网 | 国产福利片一区二区 | 欧美亚洲天堂 | 亚洲一区二区三区成人 | 少女国产免费观看 | 成年人免费网站在线观看 | 天天色综合影视 | 女裸全身无奶罩内裤内衣内裤 | 日韩精品1区2区3区 欧美一本 |