kv_put_with_options()
#include <kvstore.h>
kv_error_t
kv_put_with_options(kv_store_t *store,
const kv_key_t *key,
const kv_value_t *value,
const kv_version_t *if_version,kv_presence_enum if_presence,
kv_version_t **new_version,
kv_value_t **previous_value,kv_return_value_version_enum return_info,
kv_durability_t durability,
kv_timeout_t timeout_ms)
key/valueペアをストアに書き込み、必要に応じて挿入または上書きします。
パラメータ
-
store
storeパラメータは、key/valueペアを書き込むストアへのハンドルです。
-
key
keyパラメータは、ストアに書き込むキーです。これは、kv_create_key()またはkv_create_key_from_uri()を使用して作成します。
-
value
valueパラメータは、ストアに書き込む値です。これは、kv_create_value()を使用して作成されます。
-
if_version
if_versionパラメータは、既存の値がこのパラメータに指定されたバージョンと一致する場合のみレコードをPUTする必要があることを示します。このパラメータは、値を更新するとき、値が最後に読み取られた後に変更されていないことを確認するために使用します。バージョンは、kv_get_version()関数を使用して取得されます。
-
if_presence
if_presenceパラメータは、ストア内のレコードの有無に基づいてレコードをPUTできる条件を示します。たとえば、
KV_IF_PRESENT
は、レコードのバージョンがそこにすでに存在する場合のみ、レコードをストアに書き込むことができることを意味します。使用可能なすべてのプレゼンス・オプションのリストについては、kv_presence_enumを参照してください。
-
new_version
new_versionパラメータは、key/valueペアの新しいバージョン情報のコピー先となるメモリーを参照します。このポインタがNULLとなるのは、この関数がゼロ以外の戻りコードを生成した場合か、return_infoが
KV_RETURN_VALUE_ALL
またはKV_RETURN_VALUE_VERSION
でない場合です。バージョン・データ構造で使用されるリソースは、kv_release_version ()を使用して解放します。
-
previous_value
previous_valueパラメータは、指定したキーに関連付けられた以前の値のコピー先とするメモリーを参照します。前の値がなかった(操作によって既存のレコードを更新するのではなく、新しいレコードを挿入する)場合、またはreturn_infoが
KV_RETURN_VALUE_ALL
またはKV_RETURN_VALUE_VALUE
でない場合は、NULLを戻します。kv_release_value()を使用して、このパラメータによって使用されるリソースを解放します。
-
return_info
return_infoパラメータは、この操作の一環として返されるバージョンおよび値の情報を示します。使用可能なオプションのリストについては、kv_return_value_version_enumを参照してください。
-
durability
durabilityパラメータは、この書込み操作で使用する永続性を保証します。永続性保証は、kv_create_durability()を使用して作成します。
-
timeout_ms
timeout_msパラメータは、操作を処理するための時間間隔の上限を指定します。指定された限度を超えないよう最善が尽くされます。ゼロの場合は、デフォルトの要求タイムアウトが使用されます。デフォルトの要求タイムアウトは、kv_config_set_timeouts()を使用して設定されます。
関連項目