我提出了更多问题!好极了! (对不起)
我可以看到它设置了cookie,但是libcouchbase的所有API都有" cookie"作为我们可以把它放入的参数。为什么还有另一个API呢?
解释这个" cookie"事情会非常有用,谢谢你。
答案 0 :(得分:1)
在libcouchbase中有两种形式的cookie,一种是操作的“用户上下文”(并在回调中传递给你),另一种是实际libcouchbase_t句柄的“用户上下文”。 (不要混淆,但还有第三个与iops结构相关的cookie)。)。
libcouchbase中的'cookie'类似于你找到的这个习语:
struct frobnicate_st {
/* private library stuff */
...
/* store anything you like here */
void *user_data;
};
在其他一些图书馆。
因为单个操作的上下文和生命周期可以跨越多个回调,并且因为您通常需要在某处存储操作的结果(状态代码和实际值),所以cookie参数特别有用(如果不是彻头彻尾的必要)
您可以浏览libcouchbase测试套件,看看它是如何在简单的上下文中使用的。
答案 1 :(得分:0)
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>