WebCFace 2.5.2
Web-based Communication Framework & Dashboard-like UI
|
サーバーに接続するクライアント。 More...
#include <webcface/client.h>
Public Member Functions | |
Client (const Client &)=delete | |
const Client & | operator= (const Client &)=delete |
Client () | |
名前を指定せずサーバーに接続する | |
Client (const std::string &name, const std::string &host="127.0.0.1", int port=7530) | |
名前を指定しサーバーに接続する | |
Client (const std::wstring &name, const std::wstring &host=L"127.0.0.1", int port=7530) | |
名前を指定しサーバーに接続する (wstring) | |
Client (const SharedString &name, const SharedString &host, int port) | |
Client (const SharedString &name, const std::shared_ptr< internal::ClientData > &data) | |
bool | connected () const |
サーバーに接続できているときtrueを返す | |
~Client () | |
接続を切りClientを破棄 | |
const Client & | close () const |
接続を切り、今後再接続しない | |
const Client & | autoReconnect (bool enabled) const |
通信が切断されたときに自動で再試行するかどうかを設定する。 | |
bool | autoReconnect () const |
通信が切断されたときに自動で再試行するかどうかを取得する。 | |
const Client & | start () const |
サーバーへの接続を別スレッドで開始する。 | |
const Client & | waitConnection () const |
サーバーへの接続を別スレッドで開始し、成功するまで待機する。 | |
const Client & | sync () const |
送信用にセットしたデータをすべて送信キューに入れ、受信したデータを処理する。 | |
const Client & | loopSyncFor (std::chrono::microseconds timeout) const |
送信用にセットしたデータをすべて送信キューに入れ、受信したデータを処理する。 | |
template<typename Clock , typename Duration > | |
const Client & | loopSyncUntil (std::chrono::time_point< Clock, Duration > timeout) const |
送信用にセットしたデータをすべて送信キューに入れ、受信したデータを処理する。 | |
const Client & | loopSync () const |
送信用にセットしたデータをすべて送信キューに入れ、受信したデータを処理する。 | |
Member | member (std::string_view name) const |
他のmemberにアクセスする | |
Member | member (std::wstring_view name) const |
他のmemberにアクセスする (wstring) | |
std::vector< Member > | members () |
サーバーに接続されている他のmemberのリストを得る。 | |
std::vector< Member > | members () const |
サーバーに接続されている他のmemberのリストを得る。 | |
const Client & | onMemberEntry (std::function< void(Member)> callback) const |
Memberが追加された時のイベント | |
std::streambuf * | loggerStreamBuf () const |
webcfaceに出力するstreambuf | |
std::streambuf * | loggerStreamBuf (std::string_view name) const |
webcfaceに出力するstreambuf | |
std::ostream & | loggerOStream () const |
webcfaceに出力するostream | |
std::ostream & | loggerOStream (std::string_view name) const |
webcfaceに出力するostream | |
std::wstreambuf * | loggerWStreamBuf () const |
webcfaceに出力するwstreambuf | |
std::wstreambuf * | loggerWStreamBuf (std::wstring_view name) const |
webcfaceに出力するwstreambuf | |
std::wostream & | loggerWOStream () const |
webcfaceに出力するwostream | |
std::wostream & | loggerWOStream (std::wstring_view name) const |
webcfaceに出力するwostream | |
const std::string & | serverVersion () const |
WebCFaceサーバーのバージョン情報 | |
const std::string & | serverName () const |
WebCFaceサーバーの識別情報 | |
const std::string & | serverHostName () const |
サーバーのホスト名 | |
const std::string & | name () const |
Member名 | |
const std::wstring & | nameW () const |
Member名 (wstring) | |
Log | log (std::string_view name) const |
Log | log (std::wstring_view name) const |
Log | log () const |
std::vector< Value > | values () const |
このmemberが公開しているvalueのリストを返す。 | |
std::vector< Text > | texts () const |
このmemberが公開しているtextのリストを返す。 | |
std::vector< RobotModel > | robotModels () const |
このmemberが公開しているrobotModelのリストを返す。 | |
std::vector< Func > | funcs () const |
このmemberが公開しているfuncのリストを返す。 | |
std::vector< View > | views () const |
このmemberが公開しているviewのリストを返す。 | |
std::vector< Image > | images () const |
このmemberが公開しているimageのリストを返す。 | |
const Member & | onValueEntry (std::function< void(Value)> callback) const |
valueが追加された時のイベント | |
const Member & | onTextEntry (std::function< void(Text)> callback) const |
textが追加された時のイベント | |
const Member & | onRobotModelEntry (std::function< void(RobotModel)> callback) const |
robotModelが追加された時のイベント | |
const Member & | onFuncEntry (std::function< void(Func)> callback) const |
funcが追加された時のイベント | |
const Member & | onImageEntry (std::function< void(Image)> callback) const |
imageが追加されたときのイベント | |
const Member & | onViewEntry (std::function< void(View)> callback) const |
viewが追加されたときのイベント | |
const Member & | onCanvas3DEntry (std::function< void(Canvas3D)> callback) const |
canvas3dが追加されたときのイベント | |
const Member & | onCanvas2DEntry (std::function< void(Canvas2D)> callback) const |
canvas2dが追加されたときのイベント | |
const Member & | onLogEntry (std::function< void(Log)> callback) const |
logが追加されたときのイベント | |
const Member & | onSync (std::function< void(Member)> callback) const |
Memberがsync()したときのイベント | |
template<typename F , typename std::enable_if_t< std::is_invocable_v< F >, std::nullptr_t > = nullptr> | |
const Member & | onSync (F callback) const |
Memberがsync()したときのイベント | |
std::chrono::system_clock::time_point | syncTime () const |
最後のsync()の時刻を返す | |
const std::string & | libName () const |
このMemberが使っているWebCFaceライブラリの識別情報 | |
const std::string & | libVersion () const |
このMemberが使っているWebCFaceのバージョン | |
const std::string & | remoteAddr () const |
このMemberのIPアドレス | |
std::optional< int > | pingStatus () const |
通信速度を調べる | |
const Member & | onPing (std::function< void(Member)> callback) const |
通信速度が更新された時のイベント | |
template<typename F , typename std::enable_if_t< std::is_invocable_v< F >, std::nullptr_t > = nullptr> | |
const Member & | onPing (F callback) const |
通信速度が更新された時のイベント | |
template<typename T , typename std::enable_if_t< std::is_same_v< T, Member >, std::nullptr_t > = nullptr> | |
bool | operator== (const T &other) const |
Memberを比較 | |
template<typename T , typename std::enable_if_t< std::is_same_v< T, Member >, std::nullptr_t > = nullptr> | |
bool | operator!= (const T &other) const |
Field | child (const SharedString &field) const |
Field | child (std::string_view field) const |
「(thisの名前).(追加の名前)」を新しい名前とするField | |
Field | child (std::wstring_view field) const |
「(thisの名前).(追加の名前)」を新しい名前とするField (wstring) | |
Field | child (int index) const |
「(thisの名前).(index)」を新しい名前とするField | |
Canvas2D | canvas2D (std::string_view field="") const |
Canvas2D | canvas2D (std::wstring_view field) const |
Canvas3D | canvas3D (std::string_view field="") const |
Canvas3D | canvas3D (std::wstring_view field) const |
Func | func (std::string_view field="") const |
Func | func (std::wstring_view field) const |
FuncListener | funcListener (std::string_view field) const |
FuncListener | funcListener (std::wstring_view field) const |
Image | image (std::string_view field="") const |
Image | image (std::wstring_view field) const |
RobotModel | robotModel (std::string_view field="") const |
RobotModel | robotModel (std::wstring_view field) const |
Text | text (std::string_view field="") const |
Text | text (std::wstring_view field) const |
Value | value (std::string_view field="") const |
Value | value (std::wstring_view field) const |
View | view (std::string_view field="") const |
View | view (std::wstring_view field) const |
std::vector< Canvas2D > | canvas2DEntries () const |
std::vector< Canvas3D > | canvas3DEntries () const |
std::vector< Func > | funcEntries () const |
std::vector< Image > | imageEntries () const |
std::vector< Log > | logEntries () const |
std::vector< RobotModel > | robotModelEntries () const |
std::vector< Text > | textEntries () const |
std::vector< Value > | valueEntries () const |
std::vector< View > | viewEntries () const |
Member | member () const |
Memberを返す | |
Protected Member Functions | |
bool | operator== (const Field &other) const |
bool | operator== (const FieldBase &rhs) const |
bool | operator!= (const Field &other) const |
bool | operator!= (const FieldBase &rhs) const |
std::shared_ptr< internal::ClientData > | dataLock () const |
data_wをlockし、失敗したらruntime_errorを投げる | |
std::shared_ptr< internal::ClientData > | setCheck () const |
data_wをlockし、memberがselfではなければinvalid_argumentを投げる | |
bool | expired () const |
SharedString | lastName8 () const |
std::string | lastName () const |
nameのうちピリオドで区切られた最後の部分を取り出す | |
std::wstring | lastNameW () const |
nameのうちピリオドで区切られた最後の部分を取り出す (wstring) | |
Field | parent () const |
nameの最後のピリオドの前までを新しい名前とするField | |
Field | operator[] (std::string_view field) const |
「(thisの名前).(追加の名前)」を新しい名前とするField | |
Field | operator[] (std::wstring_view field) const |
「(thisの名前).(追加の名前)」を新しい名前とするField (wstring) | |
Field | operator[] (int index) const |
「(thisの名前).(index)」を新しい名前とするField | |
bool | isSelf () const |
memberがselfならtrue | |
Protected Attributes | |
std::weak_ptr< internal::ClientData > | data_w |
ClientDataの参照 | |
SharedString | member_ |
メンバー名 | |
SharedString | field_ |
フィールド名 | |
サーバーに接続するクライアント。
|
inline |
名前を指定せずサーバーに接続する
サーバーのホストとポートはlocalhost:7530になる
|
inlineexplicit |
名前を指定しサーバーに接続する
サーバーのホストとポートを省略した場合 127.0.0.1:7530 になる
|
inlineexplicit |
名前を指定しサーバーに接続する (wstring)
サーバーのホストとポートを省略した場合 127.0.0.1:7530 になる
|
explicit |
|
explicit |
~Client | ( | ) |
接続を切りClientを破棄
bool autoReconnect | ( | ) | const |
通信が切断されたときに自動で再試行するかどうかを取得する。
const Client & autoReconnect | ( | bool | enabled | ) | const |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inlineinherited |
「(thisの名前).(index)」を新しい名前とするField
|
inlineinherited |
「(thisの名前).(追加の名前)」を新しい名前とするField
|
inlineinherited |
「(thisの名前).(追加の名前)」を新しい名前とするField (wstring)
const Client & close | ( | ) | const |
接続を切り、今後再接続しない
bool connected | ( | ) | const |
サーバーに接続できているときtrueを返す
|
inherited |
data_wをlockし、失敗したらruntime_errorを投げる
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
このmemberが公開しているfuncのリストを返す。
|
inherited |
|
inherited |
|
inherited |
|
inherited |
このmemberが公開しているimageのリストを返す。
|
inherited |
memberがselfならtrue
data_wがlockできなければruntime_errorを投げる
|
inlineinherited |
nameのうちピリオドで区切られた最後の部分を取り出す
|
protectedinherited |
|
inlineinherited |
nameのうちピリオドで区切られた最後の部分を取り出す (wstring)
|
inherited |
このMemberが使っているWebCFaceライブラリの識別情報
|
inherited |
このMemberが使っているWebCFaceのバージョン
|
inherited |
ver2.4〜: nameを省略した場合 "default" として送信される。
|
inlineinherited |
|
inlineinherited |
|
inherited |
std::ostream & loggerOStream | ( | ) | const |
webcfaceに出力するostream
std::ostream & loggerOStream | ( | std::string_view | name | ) | const |
webcfaceに出力するostream
std::streambuf * loggerStreamBuf | ( | ) | const |
webcfaceに出力するstreambuf
std::streambuf * loggerStreamBuf | ( | std::string_view | name | ) | const |
webcfaceに出力するstreambuf
std::wostream & loggerWOStream | ( | ) | const |
std::wostream & loggerWOStream | ( | std::wstring_view | name | ) | const |
webcfaceに出力するwostream
std::wstreambuf * loggerWStreamBuf | ( | ) | const |
std::wstreambuf * loggerWStreamBuf | ( | std::wstring_view | name | ) | const |
webcfaceに出力するwstreambuf
|
inline |
送信用にセットしたデータをすべて送信キューに入れ、受信したデータを処理する。
|
inline |
送信用にセットしたデータをすべて送信キューに入れ、受信したデータを処理する。
|
inline |
送信用にセットしたデータをすべて送信キューに入れ、受信したデータを処理する。
loopSyncFor() と同じだが、timeoutを絶対時間で指定
|
inherited |
Memberを返す
|
inline |
他のmemberにアクセスする
\brief 別スレッドでsync()を自動的に呼び出す間隔を設定する。 \since ver2.0 * start() や waitConnection() より前に設定する必要がある。 *
autoSyncが有効の場合、別スレッドで一定間隔(100μs)ごとにsync()が呼び出され、 各種コールバック (onEntry, onChange, Func::run()など) も別のスレッドで呼ばれることになる (そのためmutexなどを適切に設定すること)
enabled | trueにすると自動でsync()が呼び出されるようになる |
private: Member member(const SharedString &name) const { if (name.empty()) { return *this; } else { return Member{data, name}; } }
public: /*!
(ver1.7から)nameが空の場合 *this を返す
|
inline |
std::vector< Member > members | ( | ) |
std::vector< Member > members | ( | ) | const |
サーバーに接続されている他のmemberのリストを得る。
自分自身と、無名のmemberを除く。
|
inlineinherited |
Member名
|
inlineinherited |
Member名 (wstring)
canvas2dが追加されたときのイベント
callback | Canvas2D型の引数をとる関数 |
canvas3dが追加されたときのイベント
callback | Canvas3D型の引数をとる関数 |
funcが追加された時のイベント
callback | Func型の引数をとる関数 |
imageが追加されたときのイベント
callback | Image型の引数をとる関数 |
logが追加されたときのイベント
callback | Log型の引数をとる関数 |
|
inlineinherited |
通信速度が更新された時のイベント
callback | 引数をとらない関数 |
通信速度が更新された時のイベント
callback | Member型の引数を取る関数 |
|
inherited |
robotModelが追加された時のイベント
callback | RobotModel型の引数をとる関数 |
|
inlineinherited |
Memberがsync()したときのイベント
callback | 引数をとらない関数 |
Memberがsync()したときのイベント
callback | Member型の引数をとる関数 |
textが追加された時のイベント
callback | Text型の引数をとる関数 |
valueが追加された時のイベント
callback | Value型の引数をとる関数 |
viewが追加されたときのイベント
callback | View型の引数をとる関数 |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inherited |
|
inlineinherited |
|
inlineinherited |
Memberを比較
|
inlineinherited |
「(thisの名前).(index)」を新しい名前とするField
|
inlineinherited |
「(thisの名前).(追加の名前)」を新しい名前とするField
|
inlineinherited |
「(thisの名前).(追加の名前)」を新しい名前とするField (wstring)
|
inherited |
nameの最後のピリオドの前までを新しい名前とするField
|
inherited |
通信速度を調べる
|
inherited |
このMemberのIPアドレス
|
inherited |
|
inherited |
|
inherited |
|
inherited |
このmemberが公開しているrobotModelのリストを返す。
const std::string & serverHostName | ( | ) | const |
サーバーのホスト名
const std::string & serverName | ( | ) | const |
const std::string & serverVersion | ( | ) | const |
WebCFaceサーバーのバージョン情報
|
inherited |
data_wをlockし、memberがselfではなければinvalid_argumentを投げる
const Client & start | ( | ) | const |
|
inline |
送信用にセットしたデータをすべて送信キューに入れ、受信したデータを処理する。
|
inherited |
最後のsync()の時刻を返す
|
inherited |
|
inherited |
|
inherited |
|
inherited |
このmemberが公開しているtextのリストを返す。
|
inherited |
|
inherited |
|
inherited |
|
inherited |
このmemberが公開しているvalueのリストを返す。
|
inherited |
|
inherited |
|
inherited |
|
inherited |
このmemberが公開しているviewのリストを返す。
const Client & waitConnection | ( | ) | const |
サーバーへの接続を別スレッドで開始し、成功するまで待機する。
|
inherited |
ClientDataの参照
ClientData内に保持するクラスもあるので循環参照を避けるためweak_ptr
|
inherited |
フィールド名
Memberなどフィールド名が不要なクラスでは使用しない
|
inherited |
メンバー名