WebCFace 2.5.2
Web-based Communication Framework & Dashboard-like UI
Loading...
Searching...
No Matches
client.h File Reference
#include "def_types.h"
Include dependency graph for client.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void wcfUsingUTF8 (int flag)
 webcfaceが使用するエンコーディングを設定する
 
wcfClientwcfInit (const char *name, const char *host, int port)
 クライアントを初期化する
 
wcfClientwcfInitW (const wchar_t *name, const wchar_t *host, int port)
 クライアントを初期化する (wstring)
 
wcfClientwcfInitDefault (const char *name)
 クライアントを初期化する (アドレスとポートはデフォルト)
 
wcfClientwcfInitDefaultW (const wchar_t *name)
 クライアントを初期化する (アドレスとポートはデフォルト, wstring)
 
int wcfIsValid (wcfClient *wcli)
 有効なClientのポインタであるかを返す
 
int wcfIsConnected (wcfClient *wcli)
 Clientが接続されているかどうかを返す
 
wcfStatus wcfClose (wcfClient *wcli)
 クライアントを閉じる
 
wcfStatus wcfStart (wcfClient *wcli)
 サーバーへの接続を別スレッドで開始する。
 
wcfStatus wcfWaitConnection (wcfClient *wcli)
 サーバーへの接続を別スレッドで開始し、成功するまで待機する。
 
wcfStatus wcfAutoReconnect (wcfClient *wcli, int enabled)
 通信が切断されたときに自動で再試行するかどうかを設定する。
 
wcfStatus wcfSync (wcfClient *wcli)
 送信用にセットしたデータをすべて送信キューに入れ、受信したデータを処理する
 
wcfStatus wcfLoopSyncFor (wcfClient *wcli, int timeout)
 送信用にセットしたデータをすべて送信キューに入れ、受信したデータを処理する
 
wcfStatus wcfLoopSync (wcfClient *wcli)
 送信用にセットしたデータをすべて送信キューに入れ、受信したデータを処理する
 
wcfStatus wcfDestroy (void *ptr)
 wcfの関数から取得したポインタのデータを破棄
 
wcfStatus wcfMemberList (wcfClient *wcli, const char **list, int size, int *members_num)
 サーバーに接続されている他のmemberのリストを得る。
 
wcfStatus wcfMemberListW (wcfClient *wcli, const wchar_t **list, int size, int *members_num)
 サーバーに接続されている他のmemberのリストを得る。
 
wcfStatus wcfMemberEntryEvent (wcfClient *wcli, wcfEventCallback1 callback, void *user_data)
 Memberが追加された時のイベント
 
wcfStatus wcfMemberEntryEventW (wcfClient *wcli, wcfEventCallback1W callback, void *user_data)
 Memberが追加された時のイベント (wstring)
 
const char * wcfServerVersion (wcfClient *wcli)
 WebCFaceサーバーのバージョン情報を返す
 
const char * wcfServerName (wcfClient *wcli)
 WebCFaceサーバーの識別情報を返す
 
const char * wcfServerHostName (wcfClient *wcli)
 WebCFaceサーバーのホスト名を返す
 

Function Documentation

◆ wcfAutoReconnect()

wcfStatus wcfAutoReconnect ( wcfClient wcli,
int  enabled 
)

通信が切断されたときに自動で再試行するかどうかを設定する。

Since
ver1.11.1
Parameters
wcli
enabled0以外にすると有効、0にすると無効になる。デフォルトは有効
Returns
wcliが無効ならWCF_BAD_WCLI
See also
wcfStart()

◆ wcfClose()

wcfStatus wcfClose ( wcfClient wcli)

クライアントを閉じる

Since
ver1.5
Returns
wcliが無効ならWCF_BAD_WCLI

◆ wcfDestroy()

wcfStatus wcfDestroy ( void *  ptr)

wcfの関数から取得したポインタのデータを破棄

  \brief 別スレッドでwcfSync()を自動的に呼び出すようにする。
  \since ver2.0

  * wcfStart() や wcfWaitConnection() より前に設定する必要がある。
  *

autoSyncが有効の場合、別スレッドで一定間隔(100μs)ごとにwcfSync()が呼び出され、 各種コールバック (onEntry, onChange, Funcなど) も別のスレッドで呼ばれることになる (そのためmutexなどを適切に設定すること)

  • デフォルトでは無効なので、手動でwcfSync()などを呼び出す必要がある
Parameters
wcli
enabled0以外にすると有効、0にすると無効になる。デフォルトは無効
See also
wcfSync(), wcfLoopSyncFor(), wcfLoopSync() ‍/ WEBCFACE_DLL wcfStatus WEBCFACE_CALL wcfAutoSync(wcfClient *wcli, int enabled);

/*!

Since
ver1.7

対象となるのは

  • wcfFuncRun, wcfFuncGetResult, wcfFuncWaitResult で取得した wcfMultiVal 型ポインタ
  • wcfViewGet で取得した wcfViewComponent 型ポインタ
  • ver2.0〜: wcfFuncRunAsync で取得した wcfPromise 型ポインタ
Parameters
ptrデータを格納したポインタ
Returns
ptrが wcfFuncRun, wcfFuncGetResult, wcfFuncWaitResult, wcfViewGet, wcfFuncRunAsync で取得したものでない場合WCF_BAD_HANDLE

◆ wcfInit()

wcfClient * wcfInit ( const char *  name,
const char *  host,
int  port 
)

クライアントを初期化する

Since
ver1.5
Parameters
name名前 (ver1.7〜:NULLも可)
hostサーバーのアドレス
portサーバーのポート
Returns
Clientのポインタ

◆ wcfInitDefault()

wcfClient * wcfInitDefault ( const char *  name)

クライアントを初期化する (アドレスとポートはデフォルト)

Since
ver1.5
Parameters
name名前 (ver1.7〜:NULLも可)
Returns
Clientのポインタ

◆ wcfInitDefaultW()

wcfClient * wcfInitDefaultW ( const wchar_t *  name)

クライアントを初期化する (アドレスとポートはデフォルト, wstring)

Since
ver2.0
See also
wcfInitDefault

◆ wcfInitW()

wcfClient * wcfInitW ( const wchar_t *  name,
const wchar_t *  host,
int  port 
)

クライアントを初期化する (wstring)

Since
ver2.0
See also
wcfInit

◆ wcfIsConnected()

int wcfIsConnected ( wcfClient wcli)

Clientが接続されているかどうかを返す

Since
ver1.5
Returns
wcliが正常にwcfInitされサーバーに接続できていれば1、そうでなければ0

◆ wcfIsValid()

int wcfIsValid ( wcfClient wcli)

有効なClientのポインタであるかを返す

Since
ver1.5
Returns
wcliが正常にwcfInitされwcfCloseする前のポインタであれば1、そうでなければ0

◆ wcfLoopSync()

wcfStatus wcfLoopSync ( wcfClient wcli)

送信用にセットしたデータをすべて送信キューに入れ、受信したデータを処理する

Since
ver2.0
  • wcfLoopSyncFor()と同じだが、close()されるまで無制限にwcfSync()を再試行する。
  • autoReconnectがfalseでサーバーに接続できてない場合はreturnする。 (deadlock回避)
Returns
wcliが無効ならWCF_BAD_WCLI
See also
wcfSync()

◆ wcfLoopSyncFor()

wcfStatus wcfLoopSyncFor ( wcfClient wcli,
int  timeout 
)

送信用にセットしたデータをすべて送信キューに入れ、受信したデータを処理する

Since
ver2.0
  • wcfSync()と同じだが、データを受信してもしなくても timeout 経過するまでは繰り返しwcfSync()を再試行する。 timeout=0 または負の値なら再試行せず即座にreturnする。(wcfSync()と同じ)
  • autoReconnectがfalseでサーバーに接続できてない場合はreturnする。 (deadlock回避)
Parameters
wcli
timeout(μs単位)
Returns
wcliが無効ならWCF_BAD_WCLI
See also
wcfSync(), wcfLoopSync()

◆ wcfMemberEntryEvent()

wcfStatus wcfMemberEntryEvent ( wcfClient wcli,
wcfEventCallback1  callback,
void *  user_data 
)

Memberが追加された時のイベント

Since
ver2.0
Parameters
wcli
callback実行する関数: const char* 型(追加されたMemberの名前が渡される)と void* 型の引数を1つずつ取り、何もreturnしない。
user_data関数に引数として渡す追加のデータ callbackが呼び出されるときに第2引数にそのまま渡される。
Returns
wcliが無効ならWCF_BAD_WCLI

◆ wcfMemberEntryEventW()

wcfStatus wcfMemberEntryEventW ( wcfClient wcli,
wcfEventCallback1W  callback,
void *  user_data 
)

Memberが追加された時のイベント (wstring)

Since
ver2.0
See also
wcfMemberEntryEvent

◆ wcfMemberList()

wcfStatus wcfMemberList ( wcfClient wcli,
const char **  list,
int  size,
int *  members_num 
)

サーバーに接続されている他のmemberのリストを得る。

Since
ver2.0
  • 自分自身と、無名のmemberを除く。
  • sizeに指定したサイズよりmemberの数が多い場合、 size分のmember名を格納する。
  • sizeに指定したサイズよりmemberの数が少ない場合、 size分より後ろの余った部分はそのまま
Parameters
wcli
listmember名を格納するchar*の配列 (size=0ならNULLも可)
sizelistの要素数
members_num実際のmember数
Returns
wcliが無効ならWCF_BAD_WCLI

◆ wcfMemberListW()

wcfStatus wcfMemberListW ( wcfClient wcli,
const wchar_t **  list,
int  size,
int *  members_num 
)

サーバーに接続されている他のmemberのリストを得る。

Since
ver2.0
See also
wcfMemberList

◆ wcfServerHostName()

const char * wcfServerHostName ( wcfClient wcli)

WebCFaceサーバーのホスト名を返す

Since
ver2.0
Returns
サーバーのホスト名、 またはwcliが無効な場合空文字列

◆ wcfServerName()

const char * wcfServerName ( wcfClient wcli)

WebCFaceサーバーの識別情報を返す

Since
ver2.0
Returns
サーバーの識別情報を表す文字列(通常は"webcface")、 またはwcliが無効な場合空文字列

◆ wcfServerVersion()

const char * wcfServerVersion ( wcfClient wcli)

WebCFaceサーバーのバージョン情報を返す

Since
ver2.0
Returns
サーバーのバージョンを表す文字列、またはwcliが無効な場合空文字列

◆ wcfStart()

wcfStatus wcfStart ( wcfClient wcli)

サーバーへの接続を別スレッドで開始する。

Since
ver1.5
Returns
wcliが無効ならWCF_BAD_WCLI
See also
wcfWaitConnection(), wcfAutoReconnect()

◆ wcfSync()

wcfStatus wcfSync ( wcfClient wcli)

送信用にセットしたデータをすべて送信キューに入れ、受信したデータを処理する

Since
ver1.5
  • 実際に送信をするのは別スレッドであり、この関数はブロックしない。
  • サーバーに接続していない場合、wcfStart()を呼び出す。
  • ver2.0以降: データを受信した場合、各種コールバック(onEntry, onChange, Funcなど)をこのスレッドで呼び出し、 それがすべて完了するまでこの関数はブロックされる。
    • データを何も受信しなかった場合やサーバーに接続していない場合は、 即座にreturnする。
Returns
wcliが無効ならWCF_BAD_WCLI
See also
wcfLoopSyncFor(), wcfLoopSync()

◆ wcfUsingUTF8()

void wcfUsingUTF8 ( int  flag)

webcfaceが使用するエンコーディングを設定する

Since
ver2.0
  • windowsでは、false(0)の場合webcfaceの各種クラスのインタフェースで使われる char* をすべてANSIエンコーディングとみなし、 内部でutf8と相互変換する。
  • デフォルトは true(1) (以前のバージョンとの互換性のため)
  • unixでは効果がない(この設定に関わらず文字列はすべてutf8とみなされ相互変換は行われない)
  • wchar_t* 型の文字列には影響しない

◆ wcfWaitConnection()

wcfStatus wcfWaitConnection ( wcfClient wcli)

サーバーへの接続を別スレッドで開始し、成功するまで待機する。

Since
ver2.0
  • wcfAutoReconnect が無効の場合は1回目の接続のみ待機し、 失敗しても再接続せずreturnする。
  • 接続だけでなくentryの受信や初期化が完了するまで待機する。 wcfLoopSync() と同様、このスレッドで受信処理 (EntryEvent コールバックの呼び出しなど) が行われる。
Returns
wcliが無効ならWCF_BAD_WCLI
See also
wcfStart(), wcfAutoReconnect()