8.3.1 名前によるメッセージのブロードキャスト
tpbroadcast(3c)を使用すると、アプリケーションの登録されたクライアントにメッセージが送信されます。これは、サービスまたは別のクライアントから呼び出すことができます。登録されたクライアントとは、tpinit()を呼び出したが、まだtpterm()を呼び出してはいないクライアントのことです。
tpbroadcast()関数の呼出しには、次のシグネチャを使用します:
               
int
tpbroadcast(char *lmid, char *usrname, char *cltname, char *data, long len, long 
flags)次の表は、tpbroadcast()関数の引数を示しています。
               
表8-3 tpbroadcast()関数の引数
| 引数 | 説明 | 
|---|---|
|  lmid  | クライアントの論理マシン識別子を指すポインタ。NULL値をワイルドカードとして使用できるので、複数のクライアントにメッセージを送信できます。 | 
|  usrname  | クライアント・プロセスのユーザー名が存在する場合、そのユーザー名を指すポインタ。NULL値をワイルドカードとして使用できるので、複数のクライアントにメッセージを送信できます。 | 
|  cltname  | クライアント・プロセスのクライアント名が存在する場合、そのクライアント名を指すポインタ。NULL値をワイルドカードとして使用できるので、複数のクライアントにメッセージを送信できます。 | 
|  data  | メッセージの内容を指すポインタ。 | 
|  len  | メッセージ・バッファのサイズ。 dataが自己記述型のバッファ・タイプ(FMLなど)を指す場合、lenに0を設定できます。 | 
|  flags  | フラグのオプション。使用できるフラグについては、『Oracle Tuxedo ATMI C関数リファレンス』の tpbroadcast(3c)に関する項を参照してください。 | 
次のリストは、すべてのクライアントを送信先としてtpbroadcast()を呼び出す方法を示しています。送信メッセージは、STRINGバッファ内にあります。
               
tpbroadcast( )の使用のリスト
char *strbuf;
if ((strbuf = tpalloc("STRING", NULL, 0)) == NULL) {
         error routine   
         }  
(void) strcpy(strbuf, "hello, world"); 
if (tpbroadcast(NULL, NULL, NULL, strbuf, 0, TPSIGRSTRT) == -1)
              error routine 親トピック: 非請求メッセージの送信