WebCFace 2.5.2
Web-based Communication Framework & Dashboard-like UI
Loading...
Searching...
No Matches
SyncDataStore2< T, ReqT > Class Template Reference

送受信するデータを保持するクラス More...

#include <webcface/internal/data_store2.h>

Inheritance diagram for SyncDataStore2< T, ReqT >:
[legend]

Public Member Functions

 SyncDataStore2 (const SharedString &name)
 
bool isSelf (const SharedString &member) const
 
unsigned int addReq (const SharedString &member, const SharedString &field)
 リクエストを追加
 
unsigned int addReq (const SharedString &member, const SharedString &field, const ReqT &req_info)
 リクエストを追加
 
void setSend (const SharedString &name, const T &data)
 送信するデータをセット
 
void setSend (const FieldBase &base, const T &data)
 
void setRecv (const SharedString &from, const SharedString &name, const T &data)
 受信したデータをdata_recvにセット
 
void setRecv (const FieldBase &base, const T &data)
 
void clearRecv (const SharedString &from, const SharedString &name)
 受信したデータを削除
 
void clearRecv (const FieldBase &base)
 
std::optional< T > getRecv (const SharedString &from, const SharedString &name)
 data_recvからデータを返す
 
std::optional< T > getRecv (const FieldBase &base)
 
bool unsetRecv (const SharedString &from, const SharedString &name)
 data_recvからデータを削除, reqを消す
 
bool unsetRecv (const FieldBase &base)
 
void initMember (const SharedString &from)
 memberのentryとデータをクリア
 
void setEntry (const SharedString &from, const SharedString &e)
 受信したentryを追加
 
StrSet1 getEntry (const SharedString &from)
 entryを取得
 
StrSet1 getEntry (const FieldBase &base)
 
std::pair< SharedString, SharedStringgetReq (unsigned int req_id, const SharedString &sub_field)
 req_idに対応するmember名とフィールド名を返す
 
const ReqT & getReqInfo (const SharedString &member, const SharedString &field)
 member名とフィールド名に対応するreq_infoを返す
 
StrMap1< T > transferSend (bool is_first)
 data_sendを返し、data_sendをクリア
 
StrMap1< T > getSendPrev (bool is_first)
 
StrMap2< unsigned int > transferReq ()
 req_sendを返し、req_sendをクリア
 

Public Attributes

std::recursive_mutex mtx
 

Detailed Description

template<typename T, typename ReqT = int>
class webcface::internal::SyncDataStore2< T, ReqT >

送受信するデータを保持するクラス

memberごとにフィールドを持つデータに使う。 member, fieldの2次元mapとなる

T=FuncInfoの時、entryとreqは使用しない(常にすべての関数の情報が送られてくる)

Constructor & Destructor Documentation

◆ SyncDataStore2()

template<typename T , typename ReqT >
SyncDataStore2 ( const SharedString name)
explicit

Member Function Documentation

◆ addReq() [1/2]

template<typename T , typename ReqT >
unsigned int addReq ( const SharedString member,
const SharedString field 
)

リクエストを追加

memberがselfの場合無効

Returns
追加した場合req_idを返し、すでにリクエストされていた場合 or selfの場合 0を返す

◆ addReq() [2/2]

template<typename T , typename ReqT >
unsigned int addReq ( const SharedString member,
const SharedString field,
const ReqT &  req_info 
)

リクエストを追加

req_infoが前回と異なっていればすでにリクエストされていても上書きする

memberがselfの場合無効

Returns
追加した場合req_idを返し、すでにリクエストされていた場合 or selfの場合 0を返す

◆ clearRecv() [1/2]

template<typename T , typename ReqT >
void clearRecv ( const FieldBase base)

◆ clearRecv() [2/2]

template<typename T , typename ReqT >
void clearRecv ( const SharedString from,
const SharedString name 
)

受信したデータを削除

◆ getEntry() [1/2]

template<typename T , typename ReqT >
StrSet1 getEntry ( const FieldBase base)

◆ getEntry() [2/2]

template<typename T , typename ReqT >
StrSet1 getEntry ( const SharedString from)

entryを取得

◆ getRecv() [1/2]

template<typename T , typename ReqT >
std::optional< T > getRecv ( const FieldBase base)

◆ getRecv() [2/2]

template<typename T , typename ReqT >
std::optional< T > getRecv ( const SharedString from,
const SharedString name 
)

data_recvからデータを返す

◆ getReq()

template<typename T , typename ReqT >
std::pair< SharedString, SharedString > getReq ( unsigned int  req_id,
const SharedString sub_field 
)

req_idに対応するmember名とフィールド名を返す

◆ getReqInfo()

template<typename T , typename ReqT >
const ReqT & getReqInfo ( const SharedString member,
const SharedString field 
)

member名とフィールド名に対応するreq_infoを返す

◆ getSendPrev()

template<typename T , typename ReqT >
StrMap1< T > getSendPrev ( bool  is_first)

◆ initMember()

template<typename T , typename ReqT >
void initMember ( const SharedString from)

memberのentryとデータをクリア

ambiguousなので引数にFieldBaseは使わない (そもそも必要ない)

◆ isSelf()

template<typename T , typename ReqT >
bool isSelf ( const SharedString member) const

◆ setEntry()

template<typename T , typename ReqT >
void setEntry ( const SharedString from,
const SharedString e 
)

受信したentryを追加

◆ setRecv() [1/2]

template<typename T , typename ReqT >
void setRecv ( const FieldBase base,
const T &  data 
)

◆ setRecv() [2/2]

template<typename T , typename ReqT >
void setRecv ( const SharedString from,
const SharedString name,
const T &  data 
)

受信したデータをdata_recvにセット

◆ setSend() [1/2]

template<typename T , typename ReqT >
void setSend ( const FieldBase base,
const T &  data 
)

◆ setSend() [2/2]

template<typename T , typename ReqT >
void setSend ( const SharedString name,
const T &  data 
)

送信するデータをセット

データをdata_sendとdata_recv[self_member_name]にセットし、 has_sendをtrueにする

◆ transferReq()

template<typename T , typename ReqT >
StrMap2< unsigned int > transferReq

req_sendを返し、req_sendをクリア

◆ transferSend()

template<typename T , typename ReqT >
StrMap1< T > transferSend ( bool  is_first)

data_sendを返し、data_sendをクリア

◆ unsetRecv() [1/2]

template<typename T , typename ReqT >
bool unsetRecv ( const FieldBase base)

◆ unsetRecv() [2/2]

template<typename T , typename ReqT >
bool unsetRecv ( const SharedString from,
const SharedString name 
)

data_recvからデータを削除, reqを消す

Returns
reqを削除したらtrue, reqがすでに削除されてればfalse

Member Data Documentation

◆ mtx

template<typename T , typename ReqT = int>
std::recursive_mutex mtx

The documentation for this class was generated from the following files: