MCPcopy Create free account
hub / github.com/axmolengine/axmol / handleNetworkEvent

Method handleNetworkEvent

core/network/HttpClient.cpp:248–403  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

246}
247
248void HttpClient::handleNetworkEvent(yasio::io_event* event)
249{
250 int channelIndex = event->cindex();
251 auto channel = _service->channel_at(event->cindex());
252 HttpResponse* response = (HttpResponse*)channel->ud_.ptr;
253 assert(response);
254
255 bool responseFinished = response->isFinished();
256 switch (event->kind())
257 {
258 case YEK_ON_PACKET:
259 if (!responseFinished)
260 {
261 auto&& pkt = event->packet_view();
262 auto err = response->input(pkt.data(), pkt.size());
263 if (err != HPE_OK)
264 {
265 response->updateInternalCode(err);
266 _service->close(event->cindex());
267 break;
268 }
269 }
270 if (response->isFinished())
271 {
272 response->updateInternalCode(yasio::errc::eof);
273 _service->close(event->cindex());
274 }
275 break;
276 case YEK_ON_OPEN:
277 if (event->status() == 0)
278 {
279 obstream obs;
280 bool usePostData = false;
281 auto request = response->getHttpRequest();
282 switch (request->getRequestType())
283 {
284 case HttpRequest::Type::GET:
285 obs.write_bytes("GET");
286 break;
287 case HttpRequest::Type::PATCH:
288 obs.write_bytes("PATCH");
289 usePostData = true;
290 break;
291 case HttpRequest::Type::POST:
292 obs.write_bytes("POST");
293 usePostData = true;
294 break;
295 case HttpRequest::Type::DELETE:
296 obs.write_bytes("DELETE");
297 break;
298 case HttpRequest::Type::PUT:
299 obs.write_bytes("PUT");
300 usePostData = true;
301 break;
302 default:
303 obs.write_bytes("GET");
304 break;
305 }

Callers

nothing calls this directly

Calls 15

format_to_zFunction · 0.85
channel_atMethod · 0.80
isFinishedMethod · 0.80
packet_viewMethod · 0.80
getHttpRequestMethod · 0.80
transportMethod · 0.80
async_waitMethod · 0.80
starts_withFunction · 0.50
cindexMethod · 0.45
kindMethod · 0.45
dataMethod · 0.45

Tested by

no test coverage detected