7.26.8. grn_ctx#

7.26.8.1. 概要#

7.26.8.2. #

TODO...

7.26.8.3. リファレンス#

type grn_ctx#

TODO...

grn_obj *grn_ctx_get(grn_ctx *ctx, const char *name, int name_size)#

ctxが使用するdbからnameに対応するオブジェクトを検索して返す。nameに一致するオブジェクトが存在しなければNULLを返す。

パラメータ:
  • name -- 検索しようとするオブジェクトの名前。

  • name_size -- 名前のバイト数。負の値が指定された場合は、終端をNULL文字とした文字列として扱われる。

grn_obj *grn_ctx_at(grn_ctx *ctx, grn_id id)#

ctx、またはctxが使用するdbからidに対応するオブジェクトを検索して返す。idに一致するオブジェクトが存在しなければNULLを返す。

パラメータ:
  • id -- 検索しようとするオブジェクトのidを指定します。

grn_rc grn_ctx_get_all_tables(grn_ctx *ctx, grn_obj *tables_buffer)#

It pushes all tables in the database of ctx into tables_buffer. tables_buffer should be initialized as GRN_PVECTOR. You can use GRN_PTR_INIT() with GRN_OBJ_VECTOR flags to initialize tables_buffer.

以下は例です。

grn_rc rc;
grn_obj tables;
int i;
int n_tables;

GRN_PTR_INIT(&tables, GRN_OBJ_VECTOR, GRN_ID_NIL);
rc = grn_ctx_get_all_tables(ctx, &tables);
if (rc != GRN_SUCCESS) {
  GRN_OBJ_FIN(ctx, &tables);
  /* Handle error. */
  return;
}

n_tables = GRN_BULK_VSIZE(&tables) / sizeof(grn_obj *);
for (i = 0; i < n_tables; i++) {
  grn_obj *table = GRN_PTR_VALUE_AT(&tables, i);
  /* Use table. */
}

/* Free resources. */
for (i = 0; i < n_tables; i++) {
  grn_obj *table = GRN_PTR_VALUE_AT(&tables, i);
  grn_obj_unlink(ctx, table);
}
GRN_OBJ_FIN(ctx, &tables);
パラメータ:
  • ctx -- その時点のコンテキスト。

  • table_buffer -- The output buffer to store tables.

戻り値:

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