WSNextPacket (C 関数)

int WSNextPacket(WSLINK 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[]Wolfram言語のInput[]関数で生成される入力のためのプロンプト
    INPUTSTRPKTInputStringPacket[]文字列として入力を要求する
    MENUPKTMenuPacket[integer,string]タイトルstring でメニューの請求
    MESSAGEPKTMessagePacket[symbol,string]Wolfram言語メッセージ識別子(symbol::string
    OUTPUTNAMEPKTOutputNamePacket[string]次の出力に割り当てられる名前(通常 Out[n]=
    RESUMEPKTResumePacket[]現在サポートされていないパケット
    RETURNEXPRPKTReturnExpressionPacket[expr]EnterExpressionPacket[]評価の結果
    RETURNPKTReturnPacket[expr]計算の結果
    RETURNTEXTPKTReturnTextPacket[string]結果の書式設定されたテキスト表示
    SUSPENDPKTSuspendPacket[]現在サポートされていないパケット
    SYNTAXPKTSyntaxPacket[integer]構文エラーが入力行で検出された場所
    TEXTPKTTextPacket[string]Print[]で生成されるようなWolfram言語からのテキスト出力
  • WSNextPacket()はエラーがあるとILLEGALPKTを返す.wstp.hは,ILLEGALPKTを0と定義する.
  • WSNextPacket()は,WSTPヘッダファイルwstp.hの中で宣言される.

例題

  (1)

#include "wstp.h"

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

void f(WSLINK lp)
{
    switch(WSNextPacket(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 */
    }    
}