|
|
tpbroadcast(3c)
名前
tpbroadcast()-名前によって通知をブロードキャストするルーチン
形式
#include <atmi.h>
int tpbroadcast(char *lmid, char *usrname, char *cltname,
char *data, long len, long flags)
機能説明
tpbroadcast() は、クライアント・プロセスやサーバ・プロセスがシステム内に登録されているクライアントに任意通知型メッセージを送ることができるようにします。ターゲット・クライアント・セットは、tpbroadcast() に渡されるワイルドカード以外の識別子すべてと一致するクライアントで構成されます。ワイルドカードは、識別子を指定するのに使用します。
lmid、usrname および cltname は、ターゲット・クライアント・セットの選択に使用する論理識別子です。引数の NULL 値は、その引数のワイルドカードとなります。ワイルドカード引数は、そのフィールドの全クライアント識別子と一致します。長さ 0 の文字列の引数は、長さ 0 のクライアント識別子とのみ一致します。各識別子は、システムが有効とみなすよう定義されたサイズの制約事項を満たさなければなりません。つまり、各識別子の長さは 0 から MAXTIDENT 文字まででなければなりません。
要求のデータ部は、data によって示され、以前に tpalloc() によって割り当てられたバッファです。len には送信するデータの大きさを指定します。ただし、data が長さの指定を必要としないタイプのバッファを指す場合 (たとえば、FML フィールド化バッファ)、len は 0 でかまいません。また、data は NULL であってもかまいません。この場合、len は無視されます。このバッファは、他の送受信されるメッセージと同様、型付きバッファ・スイッチ・ルーチンで処理されます。たとえば、符号化/復号化は自動的に行われます。
次に、有効な flags の一覧を示します。
戻り値
異常終了すると、tpbroadcast() は -1 を返し、tperrno() を設定してエラー条件を示します。
エラー
異常終了には、tpbroadcast() はアプリケーション・クライアントにブロードキャスト・メッセージを送信せず、tperrno() を次のいずれかの値に設定します。
移植性
tpnotify(3c) で説明したインターフェイスはすべて、ネイティブ・サイトの UNIX システムベースのプロセッサ上で利用できます。さらに、ルーチン tpbroadcast() と tpchkunsol() は、関数 tpsetunsol() ともとに、UNIX システムおよび MS-DOS ベースのプロセッサ上で利用することができます。
使用法
シグナル・ベースの通知方法を選択したクライアントは、シグナルに関する制約から、システムによるシグナルを受け取ることはできません。このような状態で通知がなされた場合、システムは、選択されたクライアントに対する通知方法をディップインに切り替えることを示すログ・メッセージを生成し、以後、クライアントにはディップイン方式で通知が行われることになります(通知方法の詳細については、UBBCONFIG() の RESOURCES セクションの NOTIFY パラメータの説明を参照してください)。
クライアントのシグナル通知は、必ずシステムによって行われるので、通知呼び出しの起動元がどこであっても、通知の動作は一貫しています。したがって、シグナル・ベースの通知を使用するには以下の条件が必要です。
ID は、アプリケーション管理者のアプリケーションのコンフィギュレーションの一部として識別されます。
あるクライアントに対してシグナル・ベースの通知方法を選択すると、いくつかの ATMI 呼び出しは異常終了します。TPSIGRSTRT の指定がなければ任意通知型メッセージを受け取るため、TPGOTSIG を返します。通知方法の選択方法については、UBBCONFIG(5) および tpinit(3c) を参照してください。
関連項目
tpalloc(3c)、 tpinit(3c)、 tpnotify(3c)、 tpterm(3c)、 UBBCONFIG(5)
|
Copyright © 2001 BEA Systems, Inc. All rights reserved.
|