【问题标题】:Questions on APIs关于 API 的问题
【发布时间】:2012-04-23 09:37:01
【问题描述】:

我想出了更多问题!耶! (对不起)

  1. “libcouchbase_set_cookie”API 有什么作用?

我可以看到它设置了cookie,但是libcouchbase的所有API都有“cookie”作为我们可以放入的参数。为什么还有另一个API这样做?

对这个“cookie”的解释会很有帮助,谢谢。

  1. IO_opt ... 似乎为我设置了 IO 选项 api... 我将查看源文件夹进行检查,但对此的任何解释都会有所帮助,因为我无法在 couchbase 网站上获得任何信息李>

【问题讨论】:

  • 将在 couchbase.com 的论坛以及 SDK 下发布此内容
  • 在 memcached 中,cookie 是连接对象。我还没有看过 libcouchbase api。
  • 嗯,你能检查一下吗?这真的很令人困惑,因为所有的 api,如 get、store、remove 等都具有“cookie”参数。我真的很想看看这些的区别

标签: couchbase


【解决方案1】:

在 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 之间的区别......明白了:D
【解决方案2】:

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>

【讨论】:

  • 我对此进行了测试并且运行良好。但是我的另一个问题是这个“libcouchbase_set_cookie”API ......我不明白为什么这实际上是必需的。由于其他 API 实际上有自己的 cookie 参数。这两者有什么区别?
猜你喜欢
  • 2021-07-23
  • 1970-01-01
  • 1970-01-01
  • 2020-02-03
  • 2011-08-03
  • 2011-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多