-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtutorial.pb.cpp
More file actions
172 lines (148 loc) · 5.09 KB
/
tutorial.pb.cpp
File metadata and controls
172 lines (148 loc) · 5.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
// Generated by a ProtoBuf compiler. DO NOT EDIT!
// Source: tutorial.pbs
#include <cstdint>
#include <string>
#include <vector>
struct SubMessage
{
int64_t req_int64 = 0;
int32_t opt_sint32 = 0;
uint64_t req_uint64 = 0;
uint32_t opt_fixed32 = 0;
float req_float = 0;
std::string opt_string = "DEFAULT STRING";
std::vector<int32_t> rep_int32;
std::vector<uint64_t> rep_uint64;
std::vector<double> rep_double;
bool has_req_int64 = false;
bool has_opt_sint32 = false;
bool has_req_uint64 = false;
bool has_opt_fixed32 = false;
bool has_req_float = false;
bool has_opt_string = false;
#ifdef EASYPB_SubMessage_EXTRA_FIELDS
EASYPB_SubMessage_EXTRA_FIELDS
#endif
void encode(easypb::Encoder &pb) const;
void decode(easypb::Decoder pb);
};
void SubMessage::encode(easypb::Encoder &pb) const
{
pb.put_int64(1, req_int64);
pb.put_sint32(2, opt_sint32);
pb.put_uint64(3, req_uint64);
pb.put_fixed32(4, opt_fixed32);
pb.put_float(5, req_float);
pb.put_string(6, opt_string);
pb.put_repeated_int32(11, rep_int32);
pb.put_repeated_uint64(12, rep_uint64);
pb.put_repeated_double(13, rep_double);
#ifdef EASYPB_SubMessage_EXTRA_ENCODING
EASYPB_SubMessage_EXTRA_ENCODING
#endif
}
void SubMessage::decode(easypb::Decoder pb)
{
while(pb.get_next_field())
{
switch(pb.field_num)
{
case 1: pb.get_int64(&req_int64, &has_req_int64); break;
case 2: pb.get_sint32(&opt_sint32, &has_opt_sint32); break;
case 3: pb.get_uint64(&req_uint64, &has_req_uint64); break;
case 4: pb.get_fixed32(&opt_fixed32, &has_opt_fixed32); break;
case 5: pb.get_float(&req_float, &has_req_float); break;
case 6: pb.get_string(&opt_string, &has_opt_string); break;
case 11: pb.get_repeated_int32(&rep_int32); break;
case 12: pb.get_repeated_uint64(&rep_uint64); break;
case 13: pb.get_repeated_double(&rep_double); break;
#ifdef EASYPB_SubMessage_EXTRA_DECODING
EASYPB_SubMessage_EXTRA_DECODING
#endif
default: pb.skip_field();
}
}
#ifdef EASYPB_SubMessage_EXTRA_POST_DECODING
EASYPB_SubMessage_EXTRA_POST_DECODING
#endif
if(! has_req_int64) {
throw easypb::missing_required_field("Decoded protobuf has no required field SubMessage.req_int64");
}
if(! has_req_uint64) {
throw easypb::missing_required_field("Decoded protobuf has no required field SubMessage.req_uint64");
}
if(! has_req_float) {
throw easypb::missing_required_field("Decoded protobuf has no required field SubMessage.req_float");
}
}
struct MainMessage
{
uint32_t opt_uint32 = 0;
int64_t req_sfixed64 = 0;
double opt_double = 3.14;
std::string req_bytes;
SubMessage req_msg;
std::vector<int32_t> rep_sint32;
std::vector<uint64_t> rep_fixed64;
std::vector<std::string> rep_string;
std::vector<SubMessage> rep_msg;
bool has_opt_uint32 = false;
bool has_req_sfixed64 = false;
bool has_opt_double = false;
bool has_req_bytes = false;
bool has_req_msg = false;
#ifdef EASYPB_MainMessage_EXTRA_FIELDS
EASYPB_MainMessage_EXTRA_FIELDS
#endif
void encode(easypb::Encoder &pb) const;
void decode(easypb::Decoder pb);
};
void MainMessage::encode(easypb::Encoder &pb) const
{
pb.put_uint32(1, opt_uint32);
pb.put_sfixed64(2, req_sfixed64);
pb.put_double(3, opt_double);
pb.put_bytes(4, req_bytes);
pb.put_message(5, req_msg);
pb.put_repeated_sint32(11, rep_sint32);
pb.put_repeated_fixed64(12, rep_fixed64);
pb.put_repeated_string(13, rep_string);
pb.put_repeated_message(14, rep_msg);
#ifdef EASYPB_MainMessage_EXTRA_ENCODING
EASYPB_MainMessage_EXTRA_ENCODING
#endif
}
void MainMessage::decode(easypb::Decoder pb)
{
while(pb.get_next_field())
{
switch(pb.field_num)
{
case 1: pb.get_uint32(&opt_uint32, &has_opt_uint32); break;
case 2: pb.get_sfixed64(&req_sfixed64, &has_req_sfixed64); break;
case 3: pb.get_double(&opt_double, &has_opt_double); break;
case 4: pb.get_bytes(&req_bytes, &has_req_bytes); break;
case 5: pb.get_message(&req_msg, &has_req_msg); break;
case 11: pb.get_repeated_sint32(&rep_sint32); break;
case 12: pb.get_repeated_fixed64(&rep_fixed64); break;
case 13: pb.get_repeated_string(&rep_string); break;
case 14: pb.get_repeated_message(&rep_msg); break;
#ifdef EASYPB_MainMessage_EXTRA_DECODING
EASYPB_MainMessage_EXTRA_DECODING
#endif
default: pb.skip_field();
}
}
#ifdef EASYPB_MainMessage_EXTRA_POST_DECODING
EASYPB_MainMessage_EXTRA_POST_DECODING
#endif
if(! has_req_sfixed64) {
throw easypb::missing_required_field("Decoded protobuf has no required field MainMessage.req_sfixed64");
}
if(! has_req_bytes) {
throw easypb::missing_required_field("Decoded protobuf has no required field MainMessage.req_bytes");
}
if(! has_req_msg) {
throw easypb::missing_required_field("Decoded protobuf has no required field MainMessage.req_msg");
}
}