WebCFace 2.5.2
Web-based Communication Framework & Dashboard-like UI
Loading...
Searching...
No Matches
ClientData::WsMutexedData Struct Reference

#include <webcface/internal/client_internal.h>

Public Attributes

bool connected = false
 
bool sync_init_end = false
 
bool do_ws_init = false
 
bool do_ws_recv = false
 
bool recv_ready = false
 
std::queue< std::vector< std::pair< int, std::shared_ptr< void > > > > recv_queue
 
std::queue< std::variant< std::string, SyncDataSnapshot > > sync_queue
 送信したいメッセージを入れるキュー
 

Member Data Documentation

◆ connected

bool connected = false

current_curl_connectedがWebSocket::initまたはrecv側の内部で変更されるので、 それを呼び出したスレッドがそれをこっちに反映させる

◆ do_ws_init

bool do_ws_init = false

Client側から関数が呼ばれたらtrue、 WebSocket::側のinit関数が完了したらfalse

trueになったときnotify

◆ do_ws_recv

bool do_ws_recv = false

Client側から関数が呼ばれたらtrue、 WebSocket::側のrecv関数が完了したらfalse

true,falseになったときnotify

recv_readyの間にdo_ws_recvを立て、 recv()を行い、これがfalseになったことで完了したことを知る

◆ recv_queue

std::queue<std::vector<std::pair<int, std::shared_ptr<void> > > > recv_queue

◆ recv_ready

bool recv_ready = false

recv待機中true WebSocket::側のrecv関数が完了したらfalse

◆ sync_init_end

bool sync_init_end = false

SyncInitEndを受信したらtrue 切断時にfalseにもどす

◆ sync_queue

std::queue<std::variant<std::string, SyncDataSnapshot> > sync_queue

送信したいメッセージを入れるキュー

接続できていない場合送信されずキューにたまる

msgpackのシリアライズに時間がかかるので、 sync()時はシリアライズ後のメッセージではなく 必要なデータを含んだSyncDataSnapshotをpushし(syncData()), あとで別スレッドでそれをメッセージにする (packSyncData())

変更するときはws_mをロックしws_condで変更通知をする (sync_mはロックしない)


The documentation for this struct was generated from the following file: