20.1.28 ead_get_group_next_key()(グループ指定による次のkeyの取得)
(1) 機能
指定したグループに属するkeyのうち,ASCIIコードの昇順で,指定したkeyの次に位置するkeyを取得します。指定したグループの下位階層のグループに属するkeyも取得対象となります。
なお,接続先のEADSサーバに存在しないkeyを指定した場合も同様に,指定したkeyの次に位置するkeyを取得します。
(2) 形式
#include <eads.h> char* ead_get_group_next_key ( const EAD_CACHE *cp, /* In */ const char *group_name, /* In */ const char *key, /* In */ int *error_code /* Out */ );
(3) 引数
- cp
-
keyを取得するキャッシュのハンドル(ポインタ)を指定します。
ead_start_cache()で取得したハンドルを指定してください。
- group_name
-
グループ名を指定します。
指定できるデータについては,「15.2.2(2) グループ名として指定できるデータ」を参照してください。
- key
-
基準とするkeyを指定します。
指定できるデータについては,「15.2.2(1) keyとして指定できるデータ」を参照してください。
- error_code
-
エラーコード取得先のポインタを指定します。
エラーコードについては,「20.2 クライアントライブラリのエラーコード(C言語)」を参照してください。
(4) 戻り値
指定したEADSサーバに格納されているkeyのうち,ASCIIコードの昇順で,指定したkeyの次に位置するkeyが返却されます。
次の場合,NULLが返却されます。
-
指定したkeyの次に位置するkeyが存在しない場合
-
エラーによってkeyの取得に失敗した場合
(5) 注意事項
-
keyの取得に成功した場合(戻り値がNULLでない場合),メモリ領域は自動的に解放されないため,APで解放してください。詳細については,「19.1.1(10) 戻り値として返却されたメモリ領域を解放する」を参照してください。
-
この関数では,指定されたグループを基に接続先のEADSサーバが決定されます。
-
接続先以外のEADSサーバの縮退,復旧,追加(スケールアウト処理),および位置の変更(リバランス処理)によって,指定したグループに属するkeyを格納するEADSサーバが変更されることがあります。そのため,ead_get_group_first_key()を実行して先頭となるkeyを取得したときとは,異なるEADSサーバに接続する可能性があります。
-
EADSサーバ上でグループに対して排他処理をしないため,ead_get_group_first_key()またはead_get_group_next_key()の実行後,他プロセスからの操作によって,グループに属するkeyが挿入,または削除されることがあります。