|
|
tpsend(3c)
名前
tpsend()-会話型接続でメッセージを送信するルーチン
形式
#include <atmi.h>
int tpsend(int cd、char *data、long len、long flags、long *revent)
機能説明
tpsend() は、別のプログラムにオープン接続を介してデータを送信するときに使用します。このとき、呼び出し元がこの接続を制御できなければなりません。tpsend() の最初の引数 cd は、データを送信するオープン接続を指定するものです。cd には、tpconnect() から返される記述子、あるいは会話サービスに渡される TPSVCINFO パラメータに含まれる記述子のいずれかを指定します。
2 番目の引数 data は、tpalloc() によって以前に割り当てられたバッファを指していなければなりません。len には送信バッファの大きさを指定します。ただし、data が長さの指定を必要としないバッファを指している場合 (FML フィールド化バッファなど)、len は無視されます (0 でかまいません)。また、data は NULL でもかまいません。この場合、len は無視されます (アプリケーション・データは送信されません。これはデータを送信せず、たとえば接続の制御だけを与えるときに使用されます)。data のタイプとサブタイプは、接続の他方の側が認識するタイプおよびサブタイプと一致していなければなりません。
次に、有効な flags の一覧を示します。
これらのイベントはそれぞれ、即時切断通知 (すなわち、正常ではなくアボート) を示すので、処理途中のデータは失われます。この接続に使用された記述子は無効になります。2 つのプログラムが同じトランザクションに参加していた場合には、そのトランザクションに「アボートのみ」のマークが付けられます。
UBBCONFIG ファイル中の SVCTIMEOUT か、TM_MIB 中の TA_SVCTIMEOUT のどちらか一方が 0 でない場合にサービスのタイムアウトが発生すると、TPESVCERR が返されます。
マルチスレッドのアプリケーションの場合、TPINVALIDCONTEXT 状態のスレッドは、tpsend() の呼び出しを発行できません。
戻り値
TPEV_SVCSUCC または TPEV_SVCFAIL のどららかが revent に設定されて tpsend() が戻った場合、tpurcode() によってポイントされているグローバル変数には、tpreturn() の一部として送信された、アプリケーションで定義した値が入っています。関数 tpsend() はエラー時には -1 を返し、tperrno() を設定してエラーの条件を示します。またイベントが存在し、かつエラーが発生しない場合、tpsend() は -1 を返し、tperrno() に [TPEEVENT] を設定します。
エラー
異常終了時には、tpsend() は tperrno() を次のいずれかの値に設定します。
関連項目
tpalloc(3c)、tpconnect(3c)、 tpdiscon(3c)、 tprecv(3c)、 tpservice(3c)
|
Copyright © 2001 BEA Systems, Inc. All rights reserved.
|