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);
}