7#include <unordered_map>
9#ifndef MSGPACK_DEFINE_MAP
10#define MSGPACK_DEFINE_MAP(...)
28 int text_color = 0, bg_color = 0;
29 std::optional<double> min_ = std::nullopt, max_ = std::nullopt,
32 int width = 0, height = 0;
36 return type == other.
type && text == other.
text &&
42 min_ == other.
min_ && max_ == other.
max_ &&
47 return !(*
this == other);
51 MSGPACK_NVP(
"L", on_click_member),
52 MSGPACK_NVP(
"l", on_click_field),
53 MSGPACK_NVP(
"R", text_ref_member),
54 MSGPACK_NVP(
"r", text_ref_field),
55 MSGPACK_NVP(
"c", text_color), MSGPACK_NVP(
"b", bg_color),
56 MSGPACK_NVP(
"im", min_), MSGPACK_NVP(
"ix", max_),
57 MSGPACK_NVP(
"is", step_), MSGPACK_NVP(
"io", option_),
58 MSGPACK_NVP(
"w", width), MSGPACK_NVP(
"h", height))
66 std::map<std::string, std::shared_ptr<message::ViewComponentData>,
75 std::map<std::string, std::shared_ptr<ViewComponentData>>
data_diff;
76 std::size_t length = 0;
79 const std::unordered_map<
int, std::shared_ptr<ViewComponentData>>
82 : field(field), data_diff(), length(length) {
83 for (
auto &&vc : data_diff) {
84 this->data_diff.emplace(std::to_string(vc.first), vc.second);
88 const std::map<std::string, std::shared_ptr<ViewComponentData>>
91 : field(field), data_diff(data_diff), length(length) {}
93 MSGPACK_NVP(
"l", length))
97 std::map<std::string, std::shared_ptr<ViewComponentData>, std::less<>>
99 std::optional<std::vector<SharedString>>
data_ids;
102 std::map<std::string, std::shared_ptr<ViewComponentData>, std::less<>>
104 std::optional<std::vector<SharedString>> data_ids)
105 : field(field), data_diff(std::move(data_diff)),
106 data_ids(std::move(data_ids)) {}
108 MSGPACK_NVP(
"l", data_ids))
113 :
public MessageBase<MessageKind::view_old + MessageKind::res> {
114 unsigned int req_id = 0;
116 std::map<std::string, std::shared_ptr<ViewComponentData>>
data_diff;
117 std::size_t length = 0;
120 const std::map<std::string, std::shared_ptr<ViewComponentData>>
123 : req_id(req_id), sub_field(sub_field), data_diff(data_diff),
126 MSGPACK_NVP(
"d", data_diff), MSGPACK_NVP(
"l", length))
130 unsigned int req_id = 0;
132 std::map<std::string, std::shared_ptr<ViewComponentData>, std::less<>>
137 const std::map<std::string, std::shared_ptr<ViewComponentData>,
138 std::less<>> &data_diff,
139 const std::optional<std::vector<SharedString>> &data_ids)
140 : req_id(req_id), sub_field(sub_field), data_diff(data_diff),
141 data_ids(data_ids) {}
143 MSGPACK_NVP(
"d", data_diff), MSGPACK_NVP(
"l", data_ids))
#define MSGPACK_DEFINE_MAP(...)
Definition base.h:18
u8stringとstringとwstringをshared_ptrで持ち共有する
Definition encoding.h:159
#define WEBCFACE_MESSAGE_FMT(Type)
Definition fmt.h:21
型からkindを取得するためだけのベースクラス
Definition base.h:68
Res(unsigned int req_id, const SharedString &sub_field, const std::map< std::string, std::shared_ptr< ViewComponentData > > &data_diff, std::size_t length)
Definition view.h:119
std::map< std::string, std::shared_ptr< ViewComponentData > > data_diff
Definition view.h:116
SharedString sub_field
Definition view.h:115
std::optional< std::vector< SharedString > > data_ids
Definition view.h:134
std::map< std::string, std::shared_ptr< ViewComponentData >, std::less<> > data_diff
Definition view.h:133
Res(unsigned int req_id, const SharedString &sub_field, const std::map< std::string, std::shared_ptr< ViewComponentData >, std::less<> > &data_diff, const std::optional< std::vector< SharedString > > &data_ids)
Definition view.h:136
SharedString sub_field
Definition view.h:131
std::optional< SharedString > text_ref_member
Definition view.h:27
int text_color
Definition view.h:28
int width
Definition view.h:32
std::optional< SharedString > text_ref_field
Definition view.h:27
int bg_color
Definition view.h:28
std::optional< double > step_
Definition view.h:30
SharedString text
Definition view.h:25
std::optional< double > min_
Definition view.h:29
std::optional< SharedString > on_click_member
Definition view.h:26
ViewComponentData()=default
bool operator==(const ViewComponentData &other) const
Definition view.h:35
std::vector< ValAdaptor > option_
Definition view.h:31
bool operator!=(const ViewComponentData &other) const
Definition view.h:46
int type
Definition view.h:24
int height
Definition view.h:32
std::optional< double > max_
Definition view.h:29
std::optional< SharedString > on_click_field
Definition view.h:26
std::vector< SharedString > data_ids
Definition view.h:69
std::map< std::string, std::shared_ptr< message::ViewComponentData >, std::less<> > components
Definition view.h:68
ViewOld(const SharedString &field, const std::map< std::string, std::shared_ptr< ViewComponentData > > &data_diff, std::size_t length)
Definition view.h:87
ViewOld(const SharedString &field, const std::unordered_map< int, std::shared_ptr< ViewComponentData > > &data_diff, std::size_t length)
Definition view.h:78
std::map< std::string, std::shared_ptr< ViewComponentData > > data_diff
Definition view.h:75
SharedString field
Definition view.h:74
std::optional< std::vector< SharedString > > data_ids
Definition view.h:99
View(const SharedString &field, std::map< std::string, std::shared_ptr< ViewComponentData >, std::less<> > data_diff, std::optional< std::vector< SharedString > > data_ids)
Definition view.h:101
std::map< std::string, std::shared_ptr< ViewComponentData >, std::less<> > data_diff
Definition view.h:98
SharedString field
Definition view.h:96
#define WEBCFACE_NS_END
Definition webcface-config.h:118
#define WEBCFACE_NS_BEGIN
Definition webcface-config.h:117