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

Method queueAutomaticControl

Libraries/Http/HttpWebSocket.cpp:1250–1277  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1248
1249Result HttpWebSocketEndpoint::applyOutgoingMask(HttpWebSocketFrameHeaderView& header, const uint8_t* maskKey) const
1250{
1251 const bool requiresMask = scHttpWebSocketRequiresOutgoingMask(endpointRole);
1252 header.masked = requiresMask;
1253 if (requiresMask)
1254 {
1255 SC_TRY_MSG(maskKey != nullptr, "HttpWebSocketEndpoint mask key required for client frames");
1256 for (size_t idx = 0; idx < 4; ++idx)
1257 {
1258 header.maskKey[idx] = maskKey[idx];
1259 }
1260 }
1261 else
1262 {
1263 for (size_t idx = 0; idx < 4; ++idx)
1264 {
1265 header.maskKey[idx] = 0;
1266 }
1267 }
1268 return Result(true);
1269}
1270
1271Result HttpWebSocketEndpoint::sendFrame(const HttpWebSocketFrameHeaderView& header, Span<const char> payload,
1272 Span<char> storage, Span<const char>& encodedFrame)
1273{
1274 SC_TRY_MSG(header.payloadLength == payload.sizeInBytes(),
1275 "HttpWebSocketEndpoint payload does not match frame length");
1276
1277 Span<const char> encodedHeader;
1278 SC_TRY(writer.beginFrame(header, storage, encodedHeader));
1279 SC_TRY_MSG(storage.sizeInBytes() >= encodedHeader.sizeInBytes() + payload.sizeInBytes(),
1280 "HttpWebSocketEndpoint frame storage too small");

Callers

nothing calls this directly

Calls 8

hasPendingControlFrameFunction · 0.85
beginFrameMethod · 0.80
writePayloadMethod · 0.80
finishFrameMethod · 0.80
ResultClass · 0.50
sizeInBytesMethod · 0.45
resetMethod · 0.45
dataMethod · 0.45

Tested by

no test coverage detected