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>
4#include <chrono>
7#include "webcface/field.h"
8
10namespace internal {
11template <typename T>
13 StrMap1<T> data_recv;
14 StrMap1<bool> req;
15 StrMap1<bool> req_send;
22 StrSet1 entry;
23
24 public:
26 std::recursive_mutex mtx;
27
28 explicit SyncDataStore1(const SharedString &name);
29
31
34 bool addReq(const SharedString &member);
35
37
40 bool clearReq(const SharedString &member);
41
42 bool isSelf(const SharedString &member) const;
43
44 void setRecv(const SharedString &member, const T &data);
45
49 void clearEntry(const SharedString &from);
53 void setEntry(const SharedString &from);
54
58 bool getEntry(const SharedString &from);
59 bool getEntry(const FieldBase &base);
60
61 std::optional<T> getRecv(const SharedString &member);
63 StrMap1<bool> transferReq();
64};
65
66#if WEBCFACE_SYSTEM_DLLEXPORT
67extern template class SyncDataStore1<std::string>; // test用
69#endif
70
71} // namespace internal
u8stringとstringとwstringをshared_ptrで持ち共有する
Definition encoding.h:67
Definition data_store1.h:12
std::recursive_mutex mtx
Definition data_store1.h:26
SharedString self_member_name
Definition data_store1.h:25
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