WSGetMessage (C 関数)
int WSGetMessage(WSLINK link,int* code,int*param)
link と連合した緊急メッセージチャネルから帯域外のメッセージコードを読み取り,コードをcode に,そして任意の変数をparam に保持する.
詳細
- WSGetMessage()は帯域外のメッセージを読み取ると0以外の値を返し,それ以外の場合には0を返す.
- WSGetMessage()はノンブロッキングの関数である.
- WSGetMessage()は下のようなメッセージを返すことができる:
-
WSTerminateMessage 現行のプログラムの停止 WSInterruptMessage 現作業への割込み WSAbortMessage 現作業の放棄 WSEndPacketMessage もうサポートされていないメッセージ WSSynchronizeMessage リンクの両端で内部式の流れを同期化 WSImDyingMessage リンクの向こう側を停止中です WSWaitingAcknowledgement リンクの向こう側が返答を待っています WSMarkTopLevelMessage WSTPライブラリ内部のメッセージ WSLinkClosingMessage WSTPライブラリ内部のメッセージ WSAuthenticationFailure メッセージの認証不可 WSFirstUserMessage ユーザ定義メッセージ空間の始まり WSLastUserMessage ユーザ定義メッセージ空間の終り - WSFirstUserMessageは,任意のユーザ定義メッセージの初期値として使用されるべきである.ユーザは新しいメッセージを#define MyAppMessage WSFirstUserMessage + 1と定義することができる.
- ユーザ定義メッセージはWSLastUserMessageより大きい値を取ってはいけない.
- 標準WSTPメッセージは任意の変数を持たない.
- WSGetMessage()は,WSTPヘッダファイルwstp.hの中で宣言される.
例題
例 (1)
#include "wstp.h"
/* read an out-of-band message code from a link */
void f(WSLINK lp)
{
int code, param;
if(WSMessageReady(lp))
{
if(! WSGetMessage(lp, &code, ¶m))
{ /* unable to read the message code from lp */ }
}
}