WSContextFromLinkServer (C 関数)

void * WSContextFromLinkServer(WSLinkServer s, int *err)

リンクサーバ s が作成されたときに s に関連付けられたコンテキストオブジェクトを返す.

詳細

  • リンクサーバ作成関数であるWSNewLinkServer()WSNewLinkServerWithPort()WSNewLinkServerWithPortAndInterface()はすべて,呼び出したものがリンクサーバに不明瞭なコンテキストオブジェクトを渡すことを許す.コンテキストオブジェクトは,リンクサーバから入ってくる接続を処理するためのアプリケーションで必要とされるオブジェクトなら何でもよい.コンテキストオブジェクトは,WSNewLinkCallbackFunctionメカニズムと一緒に使われる場合に最も有用である.
  • WSContextFromLinkServer()は,エラーが起ると err のエラー値,および(void *)0を返す.WSContextFromLinkServer()が成功した場合には,err にはゼロが含まれる.
  • エラーの条件を示す非零の値は,wstp.hWSEエラーに対応し,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);
}