# groonga - An open-source fulltext search engine and column store.

- 日本語版はこちら

# 7.18.11. `grn_hook`

## 7.18.11.1. Summary

TODO...

## 7.18.11.2. Example

TODO...

## 7.18.11.3. Reference

`grn_hook_entry`

  TODO...

grn_rc `grn_obj_add_hook`(grn_ctx *ctx, grn_obj *obj, grn_hook_entry entry, int offset, grn_obj *proc, grn_obj *data)

  objに対してhookを追加します。

  Parameters: | obj -- 対象objectを指定します。 entry -- `GRN_HOOK_GET` は、objectの参照時に呼び出されるhookを定義します。 `GRN_HOOK_SET` は、objectの更新時に呼び出されるhookを定義します。 `GRN_HOOK_SELECT` は、検索処理の実行中に適時呼び出され、処理の実行状況を調べたり、実行の中断を指示することができます。 offset -- hookの実行順位。offsetに対応するhookの直前に新たなhookを挿入します。 0を指定した場合は先頭に挿入されます。-1を指定した場合は末尾に挿入されます。 objectに複数のhookが定義されている場合は順位の順に呼び出されます。 proc -- 手続きを指定します。 data -- hook固有情報を指定します。

int `grn_obj_get_nhooks`(grn_ctx *ctx, grn_obj *obj, grn_hook_entry entry)

  objに定義されているhookの数を返します。

  Parameters: | obj -- 対象objectを指定します。 entry -- hookタイプを指定します。

grn_obj *`grn_obj_get_hook`(grn_ctx *ctx, grn_obj *obj, grn_hook_entry entry, int offset, grn_obj *data)

  objに定義されているhookの手続き（proc）を返します。hook固有情報が定義されている場合は、その内容をdataにコピーして返します。

  Parameters: | obj -- 対象objectを指定します。 entry -- hookタイプを指定します。 offset -- 実行順位を指定します。 data -- hook固有情報格納バッファを指定します。

grn_rc `grn_obj_delete_hook`(grn_ctx *ctx, grn_obj *obj, grn_hook_entry entry, int offset)

  objに定義されているhookを削除します。

  Parameters: | obj -- 対象objectを指定します。 entry -- hookタイプを指定します。 offset -- 実行順位を指定します。