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