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

Method on_frame_header

core/network/WebSocket.cpp:336–360  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

334}
335
336int WebSocket::on_frame_header(websocket_parser* parser)
337{
338 WebSocket* ws = static_cast<WebSocket*>(parser->data);
339 int opcode = parser->flags & WS_OP_MASK;
340
341 std::unique_lock<std::recursive_mutex> lck(ws->_receivedDataMtx);
342 auto& message = ws->_receivedData;
343
344 if (opcode != WS_OP_CONTINUE)
345 ws->_opcode = opcode;
346 auto length = parser->length;
347 auto reserve_length = (std::min)(length + 1, static_cast<size_t>(WS_MAX_PAYLOAD_LENGTH));
348 if (reserve_length > ws->_receivedData.capacity())
349 {
350 message.reserve(reserve_length);
351 }
352 switch (ws->_frameState)
353 {
354 case FrameState::BEGIN:
355 case FrameState::FIN:
356 message.clear();
357 }
358 ws->_frameState = FrameState::HEADER;
359 return 0;
360}
361
362int WebSocket::on_frame_body(websocket_parser* parser, const char* at, size_t length)
363{

Callers

nothing calls this directly

Calls 3

capacityMethod · 0.45
reserveMethod · 0.45
clearMethod · 0.45

Tested by

no test coverage detected