MLGetMessageHandler (C 関数)

MLGetMessageHandlerWSGetMessageHandlerに置き換えられた.

MLMessageHandlerObject MLGetMessageHandler(MLINK link)

MLINKオブジェクトlink のためにインストールされたメッセージハンドラ(処理)関数を返す.

詳細

  • MathLinkが接続の向こう側から緊急のメッセージを受けると,緊急メッセージハンドラ関数が呼び出される.
  • MLGetMessageHandler()は,link にメッセージハンドラ関数がインストールされていない場合に(MLMessageHandlerObject)0 を返す.
  • MLMessageHandlerObject は,void f(MLINK link,int m1,int m2)の形式の関数へのポインタである.
  • MLGetMessageHandler()は,MathLinkヘッダファイルmathlink.hの中で宣言される.

例題

  (1)

#include "mathlink.h"

/* a function to read MathLink urgent messages */

void AppMessageHandler(MLINK link, int m1, int m2)
{
    /* ... */
}


/* check that a link uses AppMessageHandler for urgent messages */

void check_the_message_handler(MLINK link)
{
    MLMessageHandlerObject handler;

    handler = MLGetMessageHandler(link);
    if(handler != (MLMessageHandlerObject)AppMessageHandler)
    {
        if(! MLSetMessageHandler(link, (MLMessageHandlerObject)AppMessageHandler))
            { /* unable to set AppMessageHandler as the handler for
             link */ }
    }
}