WSNewLinkCallbackFunction (C 関数)

WSLinkServerオブジェクトと,引数としてのWSLINKオブジェクトを取り,voidを返す関数への関数ポインタを説明するWSTPのタイプである.

詳細

  • 関数WSRegisterCallbackFunctionWithLinkServer()は,プログラムがリンクサーバオブジェクトとともにコールバック関数を「インストール」することを可能にする.リンクサーバオブジェクトは,プログラムがリンクサーバの端点に接続されたときにコールバック関数を呼び出す.WSLINKオブジェクトを使って新しいプログラムと交信することができる.
  • WSNewLinkCallbackFunctionは,次の形を取る:
  • void function(WSLinkServer s, WSLINK l);
  • リンクサーバは,プログラムがコールバック関数を認識すると,非同期的に入ってくる接続を処理する.コールバック関数は,非同期的なアクセスに対して,共有のデータ構造を護るために必要な手段を取らなければならない.
  • 新しいWSLINKオブジェクトを使うには,プログラムは他のリンク操作の前に,リンクオブジェクト上にWSActivate()を呼び出さなければならない.

例題

  (1)

#include "wstp.h"

void NewLinkCallbackFunction(WSLinkServer server, WSLINK link);

WSLinkServer startLinkServer(WSENV env)
{
    WSLinkServer theServer;
    int error;

    theServer = WSNewLinkServer(env, NULL /* No context object
        for this example */, &error);
    if(error != WSEOK)
    { /* Handle error */ }

    WSRegisterCallbackFunctionWithLinkServer(theServer,
        NewLinkCallbackFunction);

    return theServer;
}


void NewLinkCallbackFunction(WSLinkServer server, WSLINK link)
{
    WSActivate(link);
    WSPutFunction(link,"Print",1);
        WSPutString(link, "Hello Client Program");
    WSEndPacket(link);
    WSFlush(link);

    ...

    WSClose(link);
}