51
51
52
52
// #define DISABLE_PING_TIMEOUT
53
53
54
- namespace Network {
55
- namespace ArticBase {
54
+ namespace Network ::ArticBase {
56
55
57
56
using namespace std ::chrono_literals;
58
57
@@ -61,10 +60,9 @@ bool Client::Request::AddParameterS8(s8 parameter) {
61
60
ARTICBASE_ERROR (" Too many parameters added to method: {}" , method_name);
62
61
return false ;
63
62
}
64
- ArticBaseCommon::RequestParameter currParam;
65
- currParam.type = ArticBaseCommon::RequestParameterType::IN_INTEGER_8;
66
- *reinterpret_cast <s8*>(currParam.data ) = parameter;
67
- parameters.push_back (currParam);
63
+ auto & param = parameters.emplace_back ();
64
+ param.type = ArticBaseCommon::RequestParameterType::IN_INTEGER_8;
65
+ memcpy (param.data , ¶meter, sizeof (s8));
68
66
return true ;
69
67
}
70
68
@@ -73,10 +71,9 @@ bool Client::Request::AddParameterS16(s16 parameter) {
73
71
ARTICBASE_ERROR (" Too many parameters added to method: {}" , method_name);
74
72
return false ;
75
73
}
76
- ArticBaseCommon::RequestParameter currParam;
77
- currParam.type = ArticBaseCommon::RequestParameterType::IN_INTEGER_16;
78
- *reinterpret_cast <s16*>(currParam.data ) = parameter;
79
- parameters.push_back (currParam);
74
+ auto & param = parameters.emplace_back ();
75
+ param.type = ArticBaseCommon::RequestParameterType::IN_INTEGER_16;
76
+ memcpy (param.data , ¶meter, sizeof (s16));
80
77
return true ;
81
78
}
82
79
@@ -85,10 +82,9 @@ bool Client::Request::AddParameterS32(s32 parameter) {
85
82
ARTICBASE_ERROR (" Too many parameters added to method: {}" , method_name);
86
83
return false ;
87
84
}
88
- ArticBaseCommon::RequestParameter currParam;
89
- currParam.type = ArticBaseCommon::RequestParameterType::IN_INTEGER_32;
90
- *reinterpret_cast <s32*>(currParam.data ) = parameter;
91
- parameters.push_back (currParam);
85
+ auto & param = parameters.emplace_back ();
86
+ param.type = ArticBaseCommon::RequestParameterType::IN_INTEGER_32;
87
+ memcpy (param.data , ¶meter, sizeof (s32));
92
88
return true ;
93
89
}
94
90
@@ -97,10 +93,9 @@ bool Client::Request::AddParameterS64(s64 parameter) {
97
93
ARTICBASE_ERROR (" Too many parameters added to method: {}" , method_name);
98
94
return false ;
99
95
}
100
- ArticBaseCommon::RequestParameter currParam;
101
- currParam.type = ArticBaseCommon::RequestParameterType::IN_INTEGER_64;
102
- *reinterpret_cast <s64*>(currParam.data ) = parameter;
103
- parameters.push_back (currParam);
96
+ auto & param = parameters.emplace_back ();
97
+ param.type = ArticBaseCommon::RequestParameterType::IN_INTEGER_64;
98
+ memcpy (param.data , ¶meter, sizeof (s64));
104
99
return true ;
105
100
}
106
101
@@ -109,18 +104,18 @@ bool Client::Request::AddParameterBuffer(const void* buffer, size_t size) {
109
104
ARTICBASE_ERROR (" Too many parameters added to method: {}" , method_name);
110
105
return false ;
111
106
}
112
- ArticBaseCommon::RequestParameter currParam ;
113
- if (size <= sizeof (currParam .data )) {
114
- currParam .type = ArticBaseCommon::RequestParameterType::IN_SMALL_BUFFER;
115
- memcpy (currParam .data , buffer, size);
116
- currParam .parameterSize = static_cast <u16>(size);
107
+ auto & param = parameters. emplace_back () ;
108
+ if (size <= sizeof (param .data )) {
109
+ param .type = ArticBaseCommon::RequestParameterType::IN_SMALL_BUFFER;
110
+ memcpy (param .data , buffer, size);
111
+ param .parameterSize = static_cast <u16>(size);
117
112
} else {
118
- currParam.type = ArticBaseCommon::RequestParameterType::IN_BIG_BUFFER;
119
- currParam.bigBufferID = static_cast <u16>(pending_big_buffers.size ());
120
- *reinterpret_cast <s32*>(currParam.data ) = static_cast <s32>(size);
113
+ param.type = ArticBaseCommon::RequestParameterType::IN_BIG_BUFFER;
114
+ param.bigBufferID = static_cast <u16>(pending_big_buffers.size ());
115
+ s32 size_32 = static_cast <s32>(size);
116
+ memcpy (param.data , &size_32, sizeof (size_32));
121
117
pending_big_buffers.push_back (std::make_pair (buffer, size));
122
118
}
123
- parameters.push_back (currParam);
124
119
return true ;
125
120
}
126
121
@@ -152,7 +147,7 @@ bool Client::Connect() {
152
147
if (connected)
153
148
return true ;
154
149
155
- auto strToUInt = [](const std::string& str) -> int {
150
+ auto str_to_int = [](const std::string& str) -> int {
156
151
char * pEnd = NULL ;
157
152
unsigned long ul = ::strtoul (str.c_str (), &pEnd, 10 );
158
153
if (*pEnd)
@@ -203,7 +198,7 @@ bool Client::Connect() {
203
198
204
199
auto version = SendSimpleRequest (" VERSION" );
205
200
if (version.has_value ()) {
206
- int version_value = strToUInt (*version);
201
+ int version_value = str_to_int (*version);
207
202
if (version_value != SERVER_VERSION) {
208
203
shutdown (main_socket, SHUT_RDWR);
209
204
closesocket (main_socket);
@@ -222,7 +217,7 @@ bool Client::Connect() {
222
217
auto max_work_size = SendSimpleRequest (" MAXSIZE" );
223
218
int max_work_size_value = -1 ;
224
219
if (max_work_size.has_value ()) {
225
- max_work_size_value = strToUInt (*max_work_size);
220
+ max_work_size_value = str_to_int (*max_work_size);
226
221
}
227
222
if (max_work_size_value < 0 ) {
228
223
shutdown (main_socket, SHUT_RDWR);
@@ -236,7 +231,7 @@ bool Client::Connect() {
236
231
auto max_params = SendSimpleRequest (" MAXPARAM" );
237
232
int max_param_value = -1 ;
238
233
if (max_params.has_value ()) {
239
- max_param_value = strToUInt (*max_params);
234
+ max_param_value = str_to_int (*max_params);
240
235
}
241
236
if (max_param_value < 0 ) {
242
237
shutdown (main_socket, SHUT_RDWR);
@@ -259,7 +254,7 @@ bool Client::Connect() {
259
254
std::string str_port;
260
255
std::stringstream ss_port (*worker_ports);
261
256
while (std::getline (ss_port, str_port, ' ,' )) {
262
- int port = strToUInt (str_port);
257
+ int port = str_to_int (str_port);
263
258
if (port < 0 || port > USHRT_MAX) {
264
259
shutdown (main_socket, SHUT_RDWR);
265
260
closesocket (main_socket);
@@ -376,7 +371,7 @@ std::optional<Client::Response> Client::Send(Request& request) {
376
371
}
377
372
378
373
std::unique_lock<std::mutex> cv_lk (resp.cv_mutex );
379
- resp.cv .wait (cv_lk, [&resp]() { return resp._done ; });
374
+ resp.cv .wait (cv_lk, [&resp]() { return resp.is_done ; });
380
375
381
376
return std::optional<Client::Response>(std::move (resp.response ));
382
377
}
@@ -726,7 +721,7 @@ void Client::Handler::RunLoop() {
726
721
727
722
{
728
723
std::scoped_lock<std::mutex> lk (pending_response->cv_mutex );
729
- pending_response->_done = true ;
724
+ pending_response->is_done = true ;
730
725
pending_response->cv .notify_one ();
731
726
}
732
727
}
@@ -742,12 +737,11 @@ void Client::OnAllHandlersFinished() {
742
737
std::scoped_lock l (recv_map_mutex);
743
738
for (auto it = pending_responses.begin (); it != pending_responses.end (); it++) {
744
739
std::scoped_lock l2 (it->second ->cv_mutex );
745
- it->second ->_done = true ;
740
+ it->second ->is_done = true ;
746
741
it->second ->cv .notify_one ();
747
742
}
748
743
pending_responses.clear ();
749
744
}
750
745
}
751
746
752
- } // namespace ArticBase
753
- } // namespace Network
747
+ } // namespace Network::ArticBase
0 commit comments