WSReady (C 関数)

int WSReady(WSLINK link)

link から読取りが可能なデータがあるかどうかをテストする.

詳細

  • Wolfram言語関数LinkReadyQに似ている.
  • WSReady()は,WSTP接続をポーリングする手段として,ループ中でよく呼び出される.
  • WSReady()は常に即座に返し,ブロックしないようになっている.
  • リンクにデータを書き込んだ場合には,WSReady()を呼び出す前に,WSFlush()を呼び出さなければならない.
  • WSReady()はリンクに読み取るデータがない場合には0を返し,リンクにデータがある場合にはゼロ以外の値を返す.
  • link がまだアクティベートされていない場合には,そのリンクの反対側がまだ作成されていなければ,WSReady()は0 を返す.
  • WSReady()は,WSTPヘッダファイルwstp.hの中で宣言される.

例題

  (1)

#include "wstp.h"

/* check a link for readable data */

void f(WSLINK lp);
{
    if(! WSFlush(lp))
        { /* unable to flush any outgoing data buffered in lp */ }

    if(WSReady(lp))
        { /* read the data from the link */ }
    else
        { /* data not ready to read */ }
}