WebCFace 2.9.0
Web-based Communication Framework & Dashboard-like UI
Loading...
Searching...
No Matches
base.h
Go to the documentation of this file.
1#pragma once
2#ifdef WEBCFACE_MESON
3#include "webcface-config.h"
4#else
5#include "webcface/common/webcface-config.h"
6#endif
7#include "./fmt.h"
9
10#ifndef MSGPACK_DEFINE_MAP
11#define MSGPACK_DEFINE_MAP(...)
12#endif
13
15namespace message {
16// 新しいメッセージの定義は
17// kind追記→struct作成→message.ccに追記→s_client_data.ccに追記→client.ccに追記
18
19namespace MessageKind {
21 unknown = -1,
22 value = 0,
23 text = 1,
24 binary = 2,
27 image = 5,
30 log = 8,
31 view = 9,
34 entry = 20,
35 req = 40,
36 res = 60,
38 call = 81,
44 sync = 87,
46 // svr_version = 88,
47 ping = 89,
51 closed = 93,
52};
53}
54
59template <int k>
61 static constexpr int kind = k;
62};
63
64template <typename T>
65struct Res {};
66
73template <typename T>
74struct Entry : public MessageBase<T::kind + MessageKind::entry> {
75 unsigned int member_id = 0;
77 MSGPACK_DEFINE_MAP(MSGPACK_NVP("m", member_id), MSGPACK_NVP("f", field))
78};
85template <typename T>
86struct Req : public MessageBase<T::kind + MessageKind::req> {
89 unsigned int req_id = 0;
90 MSGPACK_DEFINE_MAP(MSGPACK_NVP("i", req_id), MSGPACK_NVP("M", member),
91 MSGPACK_NVP("f", field))
92};
93struct Image;
94template <>
95struct Req<Image>;
96
97} // namespace message
#define MSGPACK_DEFINE_MAP(...)
Definition base.h:11
u8stringとstringとwstringをshared_ptrで持ち共有する
Definition encoding.h:67
MessageKindEnum
Definition base.h:20
@ log_req_default
Definition base.h:43
@ ping_status
Definition base.h:48
@ ping_status_req
Definition base.h:49
@ text
Definition base.h:23
@ sync_init_end
Definition base.h:45
@ req
Definition base.h:35
@ robot_model
Definition base.h:28
@ func_info
Definition base.h:41
@ sync_init
Definition base.h:37
@ canvas2d
Definition base.h:32
@ closed
Definition base.h:51
@ binary
Definition base.h:24
@ unknown
Definition base.h:21
@ res
Definition base.h:36
@ image
Definition base.h:27
@ value
Definition base.h:22
@ call
Definition base.h:38
@ sync
Definition base.h:44
@ call_result
Definition base.h:40
@ canvas3d_old
Definition base.h:29
@ log
Definition base.h:30
@ ping
Definition base.h:47
@ log_entry_default
Definition base.h:50
@ view
Definition base.h:31
@ canvas2d_old
Definition base.h:26
@ call_response
Definition base.h:39
@ log_default
Definition base.h:42
@ view_old
Definition base.h:25
@ entry
Definition base.h:34
@ canvas3d
Definition base.h:33
server->client 新しいvalueなどの報告
Definition base.h:74
SharedString field
Definition base.h:76
Definition image.h:59
型からkindを取得するためだけのベースクラス
Definition base.h:60
client->server 以降Recvを送るようリクエスト
Definition base.h:86
SharedString field
Definition base.h:88
SharedString member
Definition base.h:87
Definition base.h:65
#define WEBCFACE_NS_END
Definition webcface-config.h:118
#define WEBCFACE_NS_BEGIN
Definition webcface-config.h:117