注釈
このAPIは実験的です。
grn_cache は select コマンドのレスポンスを保持するためのデータストアです。一般的なオブジェクトのキャッシュとして使うものではありません。あくまで select コマンドのためのものです。
grn_cache_current_set() を使うことで現在のキャッシュオブジェクトを変更することができます。 select コマンドのレスポンスが内部的に用いられます。
select コマンドは、一つのグローバルキャッシュオブジェクトを利用します。もし複数のデータベースをオープンしていた場合、そのキャッシュオブジェクトは共有されます。これは重要な問題です。
もし複数のデータベースを開き、 select コマンドを使用するのであれば、 grn_cache オブジェクトを使う必要があります。 groonga-httpd のようなケースが該当します。もし一つのデータベースのみを開く場合や、 select コマンドを使わない場合は、 grn_cache オブジェクトを使う必要はありません。 Rroonga <http://ranguba.org/ja/#about-rroonga> のようなケースです。
以下はキャッシュを変更する例です。
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);
grn_cache は詳細を公開していないオブジェクトです。 grn_cache_open() で作成し、 grn_cache_close() で解放できます。
新規にキャッシュオブジェクトを作成します。
新しいキャッシュオブジェクト作成のためのメモリ割り当てに失敗した場合、 NULL を返します。エラー情報は ctx に格納されます。
パラメタ: |
|
---|---|
戻り値: | 新しいキャッシュオブジェクトの作成に成功した場合は NULL 以外の値を返します。このキャッシュオブジェクトは grn_cache_close() で解放されなければなりません。 |
cache のリソースを解放。
パラメタ: |
|
---|---|
戻り値: | 成功時は GRN_SUCCESS 、エラー時は GRN_SUCCESS 以外。 |
select コマンドで使われるキャッシュオブジェクトを設定します。
パラメタ: |
|
---|---|
戻り値: | 成功時は GRN_SUCCESS 、エラー時は GRN_SUCCESS 以外。 |
select コマンドで使われるキャッシュオブジェクトを取得します。
パラメタ: |
|
---|---|
戻り値: | select コマンドで使われるキャッシュオブジェクト。 NULL のこともあります。 |