MLNextPacket (C 関数)

MLNextPacketWSNextPacketに置き換えられた.

int MLNextPacket(MLINK link)

link 上の次のパケットまで移動して,そのパケットの頭部を示す定数を返す.

詳細

  • 次のパケットを返すことが可能である:
  • BEGINDLGPKTBeginDialogPacket[integer]integer で参照されたダイアログサブセッションを起動する
    CALLPKTCallPacket[integer,list]引数list と一緒にinteger で番号付けされた外部関数を呼び出すことを要求する
    DISPLAYENDPKTDisplayEndPacket[]現在サポートされていないPostScriptのグラフィックス関係のパケット
    DISPLAYPKTDisplayPacket[]現在サポートされていないPostScriptのグラフィックス関係のパケット
    ENDDLGPKTEndDialogPacket[integer]integer で参照されたダイアログボックスサブセッションを終える
    ENTEREXPRPKTEnterExpressionPacket[expr]expr を評価する
    ENTERTEXTPKTEnterTextPacket[string]string を解析して式として評価する
    EVALUATEPKTEvaluatePacket[expr]カーネルのメインループを避けながらexpr を評価する
    INPUTNAMEPKTInputNamePacket[string]次の入力に割り当てられる名前(通常 In[n]:=
    INPUTPKTInputPacket[]Mathematica のInput[]関数で生成される入力のためのプロンプト
    INPUTSTRPKTInputStringPacket[]文字列として入力を要求する
    MENUPKTMenuPacket[integer,string]タイトルstring でメニューの請求
    MESSAGEPKTMessagePacket[symbol,string]Mathematicaメッセージ識別子(symbol::string
    OUTPUTNAMEPKTOutputNamePacket[string]次の出力に割り当てられる名前(通常 Out[n]=
    RESUMEPKTResumePacket[]現在サポートされていないパケット
    RETURNEXPRPKTReturnExpressionPacket[expr]EnterExpressionPacket[]評価の結果
    RETURNPKTReturnPacket[expr]計算の結果
    RETURNTEXTPKTReturnTextPacket[string]結果の書式設定されたテキスト表示
    SUSPENDPKTSuspendPacket[]現在サポートされていないパケット
    SYNTAXPKTSyntaxPacket[integer]構文エラーが入力行で検出された場所
    TEXTPKTTextPacket[string]Print[]で生成されるようなMathematica からのテキスト出力
  • MLNextPacket()はエラーがあるとILLEGALPKTを返す.mathlink.hは,ILLEGALPKTを0と定義する.
  • MLNextPacket()は,MathLinkヘッダファイルmathlink.hの中で宣言される.

例題

  (1)

#include "mathlink.h"

/* read the type of the incoming packet on a link */

void f(MLINK lp)
{
    switch(MLNextPacket(lp))
    {
        case CALLPKT:
            /* read the CallPacket[] */
            break;
        case EVALUATEPKT:
            /* read the EvaluatePacket[] */
            break;
        case RETURNPKT:
            /* read the EvaluatePacket[] */

        /* ... */

        case ILLEGALPKT:
            /* unable to read the next packet from lp */
    }    
}