我想出了更多的问题!耶!(对不起)
- “libcouchbase_set_cookie”API 是做什么的?
我可以看到它设置了cookie,但是libcouchbase的所有API都有“cookie”作为我们可以放入的参数。为什么还有另一个API这样做?
解释这个“cookie”的东西会非常有帮助,谢谢。
- IO_opt ...似乎为我设置了IO选项api...我将查看源文件夹进行检查,但对此的任何解释也会有所帮助,因为我无法在couchbase网站上获得任何信息
我想出了更多的问题!耶!(对不起)
我可以看到它设置了cookie,但是libcouchbase的所有API都有“cookie”作为我们可以放入的参数。为什么还有另一个API这样做?
解释这个“cookie”的东西会非常有帮助,谢谢。
在 libcouchbase 中有两种形式的 cookie,一种是用于操作的“用户上下文”(并在回调中传递给您),一种是用于实际 libcouchbase_t 句柄的“用户上下文”。(不要混淆,但还有第三个 cookie 专门与 iops 结构相关联 :))。
libcouchbase 中的“cookie”类似于您会发现的这个成语:
struct frobnicate_st {
/* private library stuff */
...
/* store anything you like here */
void *user_data;
};
在其他一些图书馆。
因为单个操作的上下文和生命周期可以跨越多个回调,并且因为您通常需要将操作的结果(状态代码和实际值)存储在某个地方,所以 cookie 参数特别有用(如果不是完全必要的话)
您可以浏览 libcouchbase 测试套件,看看它是如何在简单的上下文中使用的。
cookie 用于允许您将上下文与操作相关联。如果不使用,则不需要设置为 NULL。下面是来自 libcouchbase 项目的 cookie 的文档。
<argument id="cookie" type="const void*">
<m_title>Client cookie</m_title>
<description>
This is a cookie the client may attach to all requests that will be
included in all callbacks. It is not required and may be NULL if
you have no need for it.
</description>
<langtype id="c" type="const void*"/>
</argument>