8.15.2. grn_cache

8.15.2.1. 概要

ノート

このAPIは実験的です。

grn_cache is a data store that keeps responses of select command. It is not general use cache object. It is only for select command.

You can just change the current cache object by grn_cache_current_set(). select command response cache is done internally.

select command uses one global cache object. If you open multiple databases, the one cache is shared. It is an important problem.

If you open multiple databases and use select command, you need to use grn_cache object. It is groonga-httpd case. If you open only one database or don't use select command, you don't need to use grn_cache object. It is rroonga case.

8.15.2.2. 実行例:

以下はキャシュを変更する例です。

grn_cache *cache;
grn_cache *cache_previous;
cache = grn_cache_open(ctx);
cache_previous = grn_cache_current_get(ctx);
grn_cache_current_set(ctx, cache);
/* grn_ctx_send(ctx, ...); */
grn_cache_current_set(ctx, cache_previous);

8.15.2.3. リファレンス

grn_cache

It is an opaque cache object. You can create a grn_cache by grn_cache_open() and free the created object by grn_cache_close().

grn_cache *grn_cache_open(grn_ctx *ctx)

新規にキャッシュオブジェクトを作成します。

If memory allocation for the new cache object is failed, NULL is returned. Error information is stored into the ctx.

パラメタ:
  • ctx -- その時点のコンテキスト。
戻り値:

A newly allocated cache object on success, NULL otherwise. The returned cache object must be freed by grn_cache_close().

grn_rc grn_cache_close(grn_ctx *ctx, grn_cache *cache)

Frees resourses of the cache.

パラメタ:
  • ctx -- その時点のコンテキスト。
  • cache -- The cache object to be freed.
戻り値:

成功時は GRN_SUCCESS 、エラー時は GRN_SUCCESS 以外。

grn_rc grn_cache_current_set(grn_ctx *ctx, grn_cache *cache)

select コマンドで使われるキャッシュオブジェクトを設定します。

パラメタ:
  • ctx -- その時点のコンテキスト。
  • cache -- select コマンドで使われるキャッシュオブジェクト。
戻り値:

成功時は GRN_SUCCESS 、エラー時は GRN_SUCCESS 以外。

grn_cache *grn_cache_current_get(grn_ctx *ctx)

select コマンドで使われるキャッシュオブジェクトを取得します。

パラメタ:
  • ctx -- その時点のコンテキスト。
戻り値:

select コマンドで使われるキャッシュオブジェクト。 NULL のこともあります。

grn_rc grn_cache_set_max_n_entries(grn_ctx *ctx, grn_cache *cache, unsigned int n)

キャッシュオブジェクトのエントリの最大数を設定します。

パラメタ:
  • ctx -- その時点のコンテキスト。
  • cache -- 変更するキャッシュオブジェクト。
  • n -- The new max number of entries of the cache object.
戻り値:

成功時は GRN_SUCCESS 、エラー時は GRN_SUCCESS 以外。

unsigned int grn_cache_get_max_n_entries(grn_ctx *ctx, grn_cache *cache)

キャッシュオブジェクトのエントリの最大数を取得します。

パラメタ:
  • ctx -- その時点のコンテキスト。
  • cache -- The target cache object.
戻り値:

The max number of entries of the cache object.