データ操作データ型
この項では、この付録で説明する関数で使用されるデータ型を定義します。
kv_depth_enum
typedef enum {
KV_DEPTH_DEFAULT = 0,
KV_DEPTH_CHILDREN_ONLY,
KV_DEPTH_DESCENDANTS_ONLY,
KV_DEPTH_PARENT_AND_CHILDREN,
KV_DEPTH_PARENT_AND_DESCENDANTS
} kv_depth_enum;
複数キー操作およびイテレータ操作で使用され、親キーのkey-valueペア、および直接の子のみまたはすべての子孫に対するkey-valueペアを選択する(戻す、または操作する)かどうかを指定します。
オプションは次のとおりです。
-
KV_DEPTH_DEFAULT
操作に深さ制約が適用されません。
-
KV_DEPTH_CHILDREN_ONLY
直接の子のみを選択し、親は選択しません。
-
KV_DEPTH_DESCENDANTS_ONLY
すべての子孫を選択し、親は選択しません。
-
KV_DEPTH_PARENT_AND_CHILDREN
直接の子および親を選択します。
-
KV_DEPTH_PARENT_AND_DESCENDANTS
すべての子孫および親を選択します。
kv_direction_enum
typedef enum {
KV_DIRECTION_FORWARD,
KV_DIRECTION_REVERSE,
KV_DIRECTION_UNORDERED
} kv_direction_enum;
イテレータ操作とともに使用し、キーが返される順序を指定します。
-
KV_DIRECTION_FORWARD
昇順のキーの順序で反復処理します。
-
KV_DIRECTION_REVERSE
降順のキーの順序で反復処理します。
-
KV_DIRECTION_UNORDERED
特定のキーの順序によらず反復処理を行います。
kv_presence_enum
typedef enum {
KV_IF_DONTCARE = 0,
KV_IF_ABSENT,
KV_IF_PRESENT
} kv_presence_enum;
kv_put_with_options()が使用中の場合にKey/Valueレコードがストアに格納される状況を定義します。
-
KV_IF_DONTCARE
レコードは制約なしでストアに格納されます。
-
KV_IF_ABSENT
指定されたキーの値が現在ストア内に存在しない場合のみ、レコードをストアに格納します。
-
KV_IF_PRESENT
指定されたキーの値が現在ストア内に存在する場合のみ、レコードをストアに格納します。
kv_return_value_version_enum
typedef enum {
KV_RETURN_VALUE_NONE = 0,
KV_RETURN_VALUE_ALL,
KV_RETURN_VALUE_VALUE,
KV_RETURN_VALUE_VERSION
} kv_return_value_version_enum;
工程の一部として戻される内容を定義するためのPUTおよび削除操作で使用します。
-
KV_RETURN_VALUE_NONE
値またはバージョンを返しません。
-
KV_RETURN_VALUE_ALL
値とバージョンの両方を返します。
-
KV_RETURN_VALUE_VALUE
値のみを返します。
-
KV_RETURN_VALUE_VERSION
バージョンのみを返します。