WSContextFromLinkServer (C 関数)
void * WSContextFromLinkServer(WSLinkServer s, int *err)
リンクサーバ s が作成されたときに s に関連付けられたコンテキストオブジェクトを返す.
詳細
- リンクサーバ作成関数であるWSNewLinkServer(),WSNewLinkServerWithPort(),WSNewLinkServerWithPortAndInterface()はすべて,呼び出したものがリンクサーバに不明瞭なコンテキストオブジェクトを渡すことを許す.コンテキストオブジェクトは,リンクサーバから入ってくる接続を処理するためのアプリケーションで必要とされるオブジェクトなら何でもよい.コンテキストオブジェクトは,WSNewLinkCallbackFunctionメカニズムと一緒に使われる場合に最も有用である.
- WSContextFromLinkServer()は,エラーが起ると err のエラー値,および(void *)0を返す.WSContextFromLinkServer()が成功した場合には,err にはゼロが含まれる.
- エラーの条件を示す非零の値は,wstp.hのWSEエラーに対応し,WSError()で返される通りである.
例題
例 (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)
{
void *theContext;
int error;
WSActivate(link);
WSPutFunction(link,"Print",1);
WSPutString(link, "Hello Client Program");
WSEndPacket(link);
WSFlush(link);
theContext = WSContextFromLinkServer(server, &error);
if(error != WSEOK)
{ /* Handle error */ }
...
WSClose(link);
}