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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Zookeeper C 回调函数

發布時間:2025/3/15 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Zookeeper C 回调函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

介紹一下 Zookeeper C API 中的各種回調函數的原型:

監視函數(watch function)原型

typedef void (*watcher_fn)(zhandle_t *zh, int type, int state, const char *path,void *watcherCtx);

?監視函數原型的各個參數解釋如下:

zhzookeeper 句柄(handle)
type事件類型(event type). *_EVENT 常量之一.
state連接狀態(connection state). 狀態值為 *_STATE 常量之一.
path觸發監視事件的 znode 節點的路徑,若為 NULL,則事件類型為 ZOO_SESSION_EVENT
watcherCtx監視器上下文(watcher context).

其他回調函數的原型

Zookeeper 中還有幾種在異步 API(一般以 zoo_a*開頭的函數) 中使用的回調函數,根據回調函數處理異步函數返回值類型的不同分為以下幾類:處理返回 void 類型的回調函數,處理返回 Stat 結構的回調函數,處理返回字符串的回調函數,處理返回數據的回調函數,處理返回字符串列表(a list of string)的回調函數,同時處理返回字符串列表(a list of string)和 Stat 結構的回調函數,以及處理返回 ACL 信息的回調函數,它們分別如下:

// 處理返回 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);

?下面一一介紹上述幾種回調函數的用法:

  • 處理返回 void 類型的回調函數
typedef void(* void_completion_t)(int rc, const void *data)

該回調函數一般在異步 API 調用結束或 Zookeeper? 客戶端失去連接時被調用。

rc異步函數調用返回的錯誤碼,連接丟失/超時將觸發該原型函數(此處指具有該函數原型的回調函數,下同)的調用,并且錯誤碼為 ZCONNECTIONLOSS --? Zookeeper 客戶端與服務器端的連接丟失,或者 ZOPERATIONTIMEOUT -- 連接超時;而與數據相關的事件也會觸發該原型函數的調用,同時置相應的錯誤碼,具體見后文(0 代異步函數調用成功)?
data由調用者傳入指針,調用者可以通過該指針向回調函數傳入自定義的參數,開發人員應負責此指針所指向內存的釋放。

?

  • 處理返回 Stat 結構的回調函數
typedef void(* stat_completion_t)(int rc, const struct Stat *stat, const void *data)

該函數一般在異步 API 調用結束或 Zookeeper? 客戶端失去連接時被調用。

rc異步函數調用返回的錯誤碼,連接丟失/超時將觸發該原型函數(此處指具有該函數原型的回調函數,下同)的調用,并且錯誤碼為 ZCONNECTIONLOSS --? Zookeeper 客戶端與服務器端的連接丟失,或者 ZOPERATIONTIMEOUT -- 連接超時;而與數據相關的事件也會觸發該原型函數的調用,同時置相應的錯誤碼,具體見后文(0 代異步函數調用成功)
stat指向與該 znode 節點相關的 Stat 信息,如果返回非 0 值(即異步調用函數出錯),stat 所指向的區域是未定義的,開發者不負責釋放 stat 所指向的內存空間。
data由調用者傳入指針,調用者可以通過該指針向回調函數傳入自定義的參數,開發人員應負責此指針所指向內存的釋放。

?

  • 處理返回字符串的回調函數
typedef void(* string_completion_t)(int rc, const char *value, const void *data)

該函數一般在異步 API 調用結束或 Zookeeper? 客戶端失去連接時被調用。

rc異步函數調用返回的錯誤碼,連接丟失/超時將觸發該原型函數(此處指具有該函數原型的回調函數,下同)的調用,并且錯誤碼為 ZCONNECTIONLOSS --? Zookeeper 客戶端與服務器端的連接丟失,或者 ZOPERATIONTIMEOUT -- 連接超時;而與數據相關的事件也會觸發該原型函數的調用,同時置相應的錯誤碼,具體見后文(0 代異步函數調用成功)
value返回的字符串
data由調用者傳入指針,調用者可以通過該指針向回調函數傳入自定義的參數,開發人員應負責此指針所指向內存的釋放。

?

  • 處理返回數據的回調函數
typedef void(* data_completion_t)(int rc, const char *value, int value_len, const struct Stat *stat, const void *data)

該函數一般在異步 API 調用結束或 Zookeeper? 客戶端失去連接時被調用。

rc異步函數調用返回的錯誤碼,連接丟失/超時將觸發該原型函數(此處指具有該函數原型的回調函數,下同)的調用,并且錯誤碼為 ZCONNECTIONLOSS --? Zookeeper 客戶端與服務器端的連接丟失,或者 ZOPERATIONTIMEOUT -- 連接超時;而與數據相關的事件也會觸發該原型函數的調用,同時置相應的錯誤碼,具體見后文(0 代異步函數調用成功)
value異步調用的返回值,如果返回非 0 值(即異步調用函數出錯),value 所指向的區域是未定義的,開發者不負責釋放?value?所指向的內存空間。
value_len返回 value 數據字節數(bytes)
stat指向與該 znode 節點相關的 Stat 信息,如果返回非 0 值(即異步調用函數出錯),stat 所指向的區域是未定義的,開發者不負責釋放 stat 所指向的內存空間。
data由調用者傳入指針,調用者可以通過該指針向回調函數傳入自定義的參數,開發人員應負責此指針所指向內存的釋放。

?

  • 處理返回字符串列表(a list of string)的回調函數
typedef void(* strings_completion_t)(int rc, const struct String_vector *strings, const void *data)

該函數一般在異步 API 調用結束或 Zookeeper? 客戶端失去連接時被調用。

rc異步函數調用返回的錯誤碼,連接丟失/超時將觸發該原型函數(此處指具有該函數原型的回調函數,下同)的調用,并且錯誤碼為 ZCONNECTIONLOSS --? Zookeeper 客戶端與服務器端的連接丟失,或者 ZOPERATIONTIMEOUT -- 連接超時;而與數據相關的事件也會觸發該原型函數的調用,同時置相應的錯誤碼,具體見后文(0 代異步函數調用成功)
strings指向包含了某 znode 節點的所有子節點名稱列表的結構,如果返回非 0 值(即異步調用函數出錯),strings 所指向的區域是未定義的,開發者不負責釋放?strings?所指向的內存空間。
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)

該函數一般在異步 API 調用結束或 Zookeeper? 客戶端失去連接時被調用。

rc異步函數調用返回的錯誤碼,連接丟失/超時將觸發該原型函數(此處指具有該函數原型的回調函數,下同)的調用,并且錯誤碼為 ZCONNECTIONLOSS --? Zookeeper 客戶端與服務器端的連接丟失,或者 ZOPERATIONTIMEOUT -- 連接超時;而與數據相關的事件也會觸發該原型函數的調用,同時置相應的錯誤碼,具體見后文(0 代異步函數調用成功)
strings指向包含了某 znode 節點的所有子節點名稱列表的結構,如果返回非 0 值(即異步調用函數出錯),strings 所指向的區域是未定義的,開發者不負責釋放?strings?所指向的內存空間。
stat指向與該 znode 節點相關的 Stat 信息,如果返回非 0 值(即異步調用函數出錯),stat 所指向的區域是未定義的,開發者不負責釋放 stat 所指向的內存空間。
data由調用者傳入的指針,調用者可以通過該指針向回調函數傳入自定義的參數,開發人員應負責此指針所指向內存的釋放。

?

  • 處理返回 ACL 信息的回調函數
typedef void(* acl_completion_t)(int rc, struct ACL_vector *acl, struct Stat *stat, const void *data)

該函數一般在異步 API 調用結束或 Zookeeper? 客戶端失去連接時被調用。

rc異步函數調用返回的錯誤碼,連接丟失/超時將觸發該原型函數(此處指具有該函數原型的回調函數,下同)的調用,并且錯誤碼為 ZCONNECTIONLOSS --? Zookeeper 客戶端與服務器端的連接丟失,或者 ZOPERATIONTIMEOUT -- 連接超時;而與數據相關的事件也會觸發該原型函數的調用,同時置相應的錯誤碼,具體見后文(0 代異步函數調用成功)
acl指向包含某 znode 節點 ACL 信息的指針,如果返回非 0 值(即異步調用函數出錯),acl 所指向的區域是未定義的,開發者不負責釋放?acl?所指向的內存空間。
stat指向與該 znode 節點相關的 Stat 信息,如果返回非 0 值(即異步調用函數出錯),stat 所指向的區域是未定義的,開發者不負責釋放 stat 所指向的內存空間。
data由調用者傳入的指針,調用者可以通過該指針向回調函數傳入自定義的參數,開發人員應負責此指針所指向內存的釋放。

總結

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

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

主站蜘蛛池模板: 波多野结衣啪啪 | 精品视频一区二区在线观看 | 国产精品美女av | 婷婷五月综合久久中文字幕 | 国产精品无码白浆高潮 | 国产午夜片 | 黄色片在线观看免费 | av地址在线 | 国产激情网| 一级片亚洲 | 欧美三级午夜理伦三级中视频 | 亚洲午夜小视频 | 中文字幕免费在线观看 | 狠狠澡| 亚洲区综合 | 婷婷六月在线 | 女厕厕露p撒尿八个少妇 | 日韩视频网址 | 亚洲一区二区三区四区不卡 | 成人欧美一区二区三区黑人冫 | 精品日日夜夜 | 色男人天堂av | 97香蕉超级碰碰久久免费软件 | 激情五月综合网 | 色婷婷狠狠干 | a v视频在线观看 | 狠狠操网站 | 中文字幕第一页在线 | 成年人视频免费看 | 红桃视频一区 | 色午夜视频 | 亚洲天堂一区二区 | 黄色片视频免费在线观看 | 艳情五月 | 成年人在线免费观看 | 大陆极品少妇内射aaaaaa | 成人av电影天堂 | 国产91热爆ts人妖系列 | 四虎在线免费视频 | 伊人网久久久 | 色婷婷av一区二区三区四区 | 色六月婷婷 | 台湾a级艳片潘金莲 | 精品美女久久久 | 永久av免费| 澳门三级 | 亚洲欧美一区二区三区久久 | 生活片毛片| 国产v亚洲 | 福利视频导航网 | 欧美激情三区 | 五月天激情影院 | 成人av电影天堂 | 婷婷看片 | 亚洲视频在线观看网址 | 四虎永久免费在线观看 | 伊人久久精品视频 | 国产黄色自拍视频 | 欧美伦理片网站 | 四虎网站在线播放 | 欧美性大战久久久久久 | 综合久草| 国模无码国产精品视频 | 久视频在线观看 | 久久成人18免费观看 | 午夜资源网 | 永久免费快色 | 久久avav| 亚洲一区 中文字幕 | 欧美性猛交xxxx乱大交3 | 日本人妻不卡一区二区三区中文字幕 | 亚洲精品911| 欧洲美女与动交ccoo | 欧美高清视频一区二区三区 | 97国产在线观看 | 国产成人自拍网 | 国产高清视频网站 | 天天综合久久 | 欧美日韩一卡 | 日韩精品电影一区二区三区 | 无码人妻精品一区二区中文 | 日本一区二区免费电影 | 亚洲精品一区二区二区 | 日韩av免费在线播放 | 久久一区国产 | 亚洲一区网| 中文自拍 | 欧美春色 | 国产欧美日韩综合 | 伊人222成人综合网 亚洲日本中文 | 国产精品视频在线观看免费 | 蜜臀aⅴ免费一区二区 | 午夜成年人 | 日本久久一区二区 | 色多多视频在线 | av一区二区在线播放 | 日韩精品网址 | 久久精品视频网站 | 日日夜夜婷婷 |