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#include <memory>
10#include <variant>
11#include <vector>
12
13#ifdef WEBCFACE_UNITY
14#include "./pack.h"
15#else
16// pack,unpackをする必要がない場合その宣言とmsgpackのincludeを省略する
17#ifndef MSGPACK_DEFINE_MAP
18#define MSGPACK_DEFINE_MAP(...)
19#endif
20#endif
21
23namespace message {
24// 新しいメッセージの定義は
25// kind追記→struct作成→message.ccに追記→s_client_data.ccに追記→client.ccに追記
26
27namespace MessageKind {
29 unknown = -1,
30 value = 0,
31 text = 1,
32 binary = 2,
35 image = 5,
38 log = 8,
39 view = 9,
42 entry = 20,
43 req = 40,
44 res = 60,
46 call = 81,
52 sync = 87,
54 // svr_version = 88,
55 ping = 89,
59 closed = 93,
60};
61}
62
67template <int k>
69 static constexpr int kind = k;
70};
71
72template <typename T>
73struct Res {};
74
81template <typename T>
82struct Entry : public MessageBase<T::kind + MessageKind::entry> {
83 unsigned int member_id = 0;
85 MSGPACK_DEFINE_MAP(MSGPACK_NVP("m", member_id), MSGPACK_NVP("f", field))
86};
93template <typename T>
94struct Req : public MessageBase<T::kind + MessageKind::req> {
97 unsigned int req_id = 0;
98 MSGPACK_DEFINE_MAP(MSGPACK_NVP("i", req_id), MSGPACK_NVP("M", member),
99 MSGPACK_NVP("f", field))
100};
101struct Image;
102template <>
103struct Req<Image>;
104
105} // namespace message
#define MSGPACK_DEFINE_MAP(...)
Definition base.h:18
u8stringとstringとwstringをshared_ptrで持ち共有する
Definition encoding.h:159
MessageKindEnum
Definition base.h:28
@ log_req_default
Definition base.h:51
@ ping_status
Definition base.h:56
@ ping_status_req
Definition base.h:57
@ text
Definition base.h:31
@ sync_init_end
Definition base.h:53
@ req
Definition base.h:43
@ robot_model
Definition base.h:36
@ func_info
Definition base.h:49
@ sync_init
Definition base.h:45
@ canvas2d
Definition base.h:40
@ closed
Definition base.h:59
@ binary
Definition base.h:32
@ unknown
Definition base.h:29
@ res
Definition base.h:44
@ image
Definition base.h:35
@ value
Definition base.h:30
@ call
Definition base.h:46
@ sync
Definition base.h:52
@ call_result
Definition base.h:48
@ canvas3d_old
Definition base.h:37
@ log
Definition base.h:38
@ ping
Definition base.h:55
@ log_entry_default
Definition base.h:58
@ view
Definition base.h:39
@ canvas2d_old
Definition base.h:34
@ call_response
Definition base.h:47
@ log_default
Definition base.h:50
@ view_old
Definition base.h:33
@ entry
Definition base.h:42
@ canvas3d
Definition base.h:41
server->client 新しいvalueなどの報告
Definition base.h:82
SharedString field
Definition base.h:84
Definition image.h:59
型からkindを取得するためだけのベースクラス
Definition base.h:68
client->server 以降Recvを送るようリクエスト
Definition base.h:94
SharedString field
Definition base.h:96
SharedString member
Definition base.h:95
Definition base.h:73
#define WEBCFACE_NS_END
Definition webcface-config.h:113
#define WEBCFACE_NS_BEGIN
Definition webcface-config.h:112