kv_lob_get_for_write()

#include <kvstore.h>

kv_error_t 
kv_lob_get_for_write(kv_store_t *store,
                     const kv_key_t *key,
                     kv_lob_handle_t **handle,
                     kv_presence_enum if_presence,
                     kv_durability_t durability,
                     kv_timeout_t timeout_ms); 

ストアにラージ・オブジェクトを書き込むためのLOBハンドルを割り当てて構成します。ハンドルが正常に作成されると、KV_SUCCESSが返されます。それ以外の場合は、KV_NO_MEMORYが返されます。

このハンドルをオープンするとき、kv_lob_put_from_file()を使用して実際の書込み操作を実行します。現在、メモリーからラージ・オブジェクトを直接書き込むメソッドはありません。

この関数によって割り当てられたLOBハンドルは、kv_lob_release_handle()を使用して解放する必要があります。

パラメータ

  • store

    storeパラメータは、ラージ・オブジェクトを書き込むストアへのハンドルです。

  • key

    keyパラメータは、LOBレコードのキーです。ここで使用する最終パス・コンポーネントは、ストアに対して構成したLOB接尾辞を指定する必要があり、指定しない場合、書込み操作は失敗します。LOB接尾辞は、kv_config_set_lob_suffix()を使用してストア用に構成します。

  • handle

    handleパラメータは、割り当てられたLOBハンドル(構造)へのポインタのコピー先であるメモリーを参照します。

  • if_presence

    if_presenceパラメータは、ストア内のレコードの有無に基づいてレコードをストアに書き込むことができる条件を示します。たとえば、KV_IF_PRESENTは、レコードのバージョンがそこにすでに存在する場合のみ、レコードをストアに書き込むことができることを意味します。

    使用可能なすべてのプレゼンス・オプションのリストについては、kv_presence_enumを参照してください。

  • durability

    durabilityパラメータは、この書込み操作で使用する永続性を保証します。永続性保証は、kv_create_durability()を使用して作成します。

  • timeout_ms

    timeout_msパラメータは、LOBの各チャンクを書き込むための時間間隔の上限を指定します。(ラージ・オブジェクトは複数のチャンクでストアに書き込まれます。)指定された限度を超えないよう最善が尽くされます。ゼロの場合は、ストアに定義されているデフォルトのLOBタイムアウト値が使用されます。この値は、kv_config_set_lob_timeout()を使用して設定します。