データ操作データ型
この項では、この付録で説明する関数で使用されるデータ型を定義します。
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バージョンのみを返します。