MLGetMessage (C 関数)
MLGetMessageはWSGetMessageに置き換えられた.
int MLGetMessage(MLINK link,int* code,int*param)
link と連合した緊急メッセージチャネルから帯域外のメッセージコードを読み取り,コードをcode に,そして任意の変数をparam に保持する.
詳細

- MLGetMessage()は帯域外のメッセージを読み取ると0以外の値を返し,それ以外の場合には0を返す.
- MLGetMessage()はノンブロッキングの関数である.
- MLGetMessage()は下のようなメッセージを返すことができる:
-
MLTerminateMessage 現行のプログラムの停止 MLInterruptMessage 現作業への割込み MLAbortMessage 現作業の放棄 MLEndPacketMessage もうサポートされていないメッセージ MLSynchronizeMessage リンクの両端で内部式の流れを同期化 MLImDyingMessage リンクの向こう側を停止中です MLWaitingAcknowledgement リンクの向こう側が返答を待っています MLMarkTopLevelMessage MathLinkライブラリ内部のメッセージ MLLinkClosingMessage MathLinkライブラリ内部のメッセージ MLAuthenticationFailure メッセージの認証不可 MLFirstUserMessage ユーザ定義メッセージ空間の始まり MLLastUserMessage ユーザ定義メッセージ空間の終り - MLFirstUserMessageは,任意のユーザ定義メッセージの初期値として使用されるべきである.ユーザは新しいメッセージを#define MyAppMessage MLFirstUserMessage + 1と定義することができる.
- ユーザ定義メッセージはMLLastUserMessageより大きい値を取ってはいけない.
- 標準MathLinkメッセージは任意の変数を持たない.
- MLGetMessage()は,MathLinkヘッダファイルmathlink.hの中で宣言される.
例題
例 (1)
#include "mathlink.h"
/* read an out-of-band message code from a link */
void f(MLINK lp)
{
int code, param;
if(MLMessageReady(lp))
{
if(! MLGetMessage(lp, &code, ¶m))
{ /* unable to read the message code from lp */ }
}
}