MCPcopy Create free account
hub / github.com/Pagghiu/SaneCppLibraries / onFramePayload

Method onFramePayload

Libraries/Http/HttpWebSocket.cpp:984–1010  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

982}
983
984Result HttpWebSocketMessageAssembler::onFramePayload(Span<char> payload, bool frameFinished)
985{
986 if (ignoringFrame)
987 {
988 return Result(true);
989 }
990
991 SC_TRY_MSG(assemblingMessage, "HttpWebSocketMessageAssembler payload without message");
992 SC_TRY_MSG(messageSize + payload.sizeInBytes() <= messageStorage.sizeInBytes(),
993 "HttpWebSocketMessageAssembler message storage too small");
994 if (payload.sizeInBytes() > 0)
995 {
996 ::memcpy(messageStorage.data() + messageSize, payload.data(), payload.sizeInBytes());
997 messageSize += payload.sizeInBytes();
998 }
999
1000 if (frameFinished and currentFrame.fin)
1001 {
1002 if (onMessage.isValid())
1003 {
1004 SC_TRY(onMessage(messageOpcode, {messageStorage.data(), messageSize}));
1005 }
1006 assemblingMessage = false;
1007 messageSize = 0;
1008 }
1009 return Result(true);
1010}
1011
1012void HttpWebSocketEndpoint::reset(HttpWebSocketEndpointRole role)
1013{

Callers 1

onPayloadMethod · 0.80

Calls 4

ResultClass · 0.50
sizeInBytesMethod · 0.45
dataMethod · 0.45
isValidMethod · 0.45

Tested by

no test coverage detected