20.1.39 ead_add_cluster_eventlistener()(クラスタイベントリスナの追加)
(1) 機能
クラスタイベントリスナを追加します。
(2) 形式
#include <eads.h> ead_nodelist ead_add_cluster_eventlistener ( const EAD_CACHE_MANAGER *cmp, /* In */ const char *cluster_eventlistener_name, /* In */ const ead_cluster_eventlistener *cluster_eventlistener, /* In */ void *userdata, /* In */ int *error_code /* Out */ );
(3) 引数
- cmp
-
キャッシュを管理するキャッシュマネージャのハンドル(ポインタ)を指定します。
ead_init_client()またはead_init_client_n()で取得したハンドルを指定してください。
- cluster_eventlistener_name
-
追加するクラスタイベントリスナの名称を指定します。
指定できるデータ型
文字数
説明
'\0'を終端記号とする文字列(char *)
1〜1,024
-
半角英数字(0〜9,A〜Z,a〜z),アンダースコア(_)が指定できます。
-
文字列の最大サイズは,'\0'を含まないバイト数です。
-
長さ0の文字列('\0'だけ)を指定できません。
同一クライアント内のほかのクラスタイベントリスナまたはノードイベントリスナと同じ名称を指定した場合は,エラーとなります。
-
- cluster_eventlistener
-
追加するクラスタイベントリスナを指すポインタを指定します。
- userdata
-
追加するクラスタイベントリスナとのデータの伝達に使用するポインタを指定します。
任意のアドレスを指定できます。
追加するクラスタイベントリスナとのデータの伝達にポインタを使用しない場合は,NULLを指定します。
- error_code
-
エラーコード取得先のポインタを指定します。
エラーコードについては,「20.2 クライアントライブラリのエラーコード(C言語)」を参照してください。
(4) 戻り値
クラスタイベントリスナの追加が終了した時点での,接続先EADSサーバの情報一覧(ead_nodelist構造体)が返却されます。
ead_nodelist構造体の形式と説明については,「20.1.53 ead_nodelist構造体(EADSサーバ情報)」を参照してください。
EADSサーバの状態に関係なく,すべてのEADSサーバの情報が返却されます。
異常終了時には,ead_nodelist構造体のnodesメンバにNULLが返却されます。
(5) 注意事項
-
戻り値として返却されたead_nodelist構造体のnodesメンバがNULLでない場合,メモリ領域は自動的に解放されないため,APで解放してください。詳細については,「19.1.1(10) 戻り値として返却されたメモリ領域を解放する」を参照してください。
-
関数実行と同時にクラスタ構成情報が変更された場合,縮退済みのEADSサーバや,追加済みのEADSサーバに対しては,cluster_eventlistenerに設定した関数を呼び出せません。関数実行後に返却されたEADSサーバの情報を確認してください。
-
この関数の実行時には,EADSサーバの接続可否は考慮されません。そのため,取得した情報には,接続できないEADSサーバ(例:EADSサーバの縮退)が含まれていることがあります。取得したEADSサーバを接続先として使用する場合は,そのEADSサーバに接続できるかどうかを,ead_node構造体のis_enableメンバで確認してください。
ead_node構造体の形式と説明については,「20.1.54 ead_node構造体(EADSサーバ指定のユーザファンクションで使用するオブジェクト)」を参照してください。