データ操作データ型

この項では、この付録で説明する関数で使用されるデータ型を定義します。

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

    バージョンのみを返します。