WebCFace 2.9.0
Web-based Communication Framework & Dashboard-like UI
Loading...
Searching...
No Matches
data_store1.h
Go to the documentation of this file.
1#pragma once
2#include <mutex>
3#include <optional>
6#include "webcface/field.h"
7
9namespace internal {
10template <typename T>
12 StrMap1<T> data_recv;
13 StrMap1<bool> req;
14 StrMap1<bool> req_send;
21 StrSet1 entry;
22
23 public:
25 std::recursive_mutex mtx;
26
27 explicit SyncDataStore1(const SharedString &name);
28
30
33 bool addReq(const SharedString &member);
34
36
39 bool clearReq(const SharedString &member);
40
41 bool isSelf(const SharedString &member) const;
42
43 void setRecv(const SharedString &member, const T &data);
44
48 void clearEntry(const SharedString &from);
52 void setEntry(const SharedString &from);
53
57 bool getEntry(const SharedString &from);
58 bool getEntry(const FieldBase &base);
59
60 std::optional<T> getRecv(const SharedString &member);
62 StrMap1<bool> transferReq();
63};
64
65#if WEBCFACE_SYSTEM_DLLEXPORT
66extern template class SyncDataStore1<std::string>; // test用
68#endif
69
70} // namespace internal
u8stringとstringとwstringをshared_ptrで持ち共有する
Definition encoding.h:67
Definition data_store1.h:11
std::recursive_mutex mtx
Definition data_store1.h:25
SharedString self_member_name
Definition data_store1.h:24
std::map< SharedString, T > StrMap1
Definition map.h:15
std::set< SharedString > StrSet1
Definition map.h:18
メンバ名とデータ名を持つクラス
Definition field.h:38
#define WEBCFACE_NS_END
Definition webcface-config.h:118
#define WEBCFACE_NS_BEGIN
Definition webcface-config.h:117