MCPcopy Create free account
hub / github.com/apache/brpc / SerializeH2SettingsFrameAndWU

Function SerializeH2SettingsFrameAndWU

src/brpc/policy/http2_rpc_protocol.cpp:253–265  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

251}
252
253static size_t SerializeH2SettingsFrameAndWU(const H2Settings& in, void* out) {
254 uint8_t* p = (uint8_t*)out;
255 size_t nb = SerializeH2Settings(in, p + FRAME_HEAD_SIZE);
256 SerializeFrameHead(p, nb, H2_FRAME_SETTINGS, 0, 0);
257 p += FRAME_HEAD_SIZE + nb;
258 if (in.connection_window_size > H2Settings::DEFAULT_INITIAL_WINDOW_SIZE) {
259 SerializeFrameHead(p, 4, H2_FRAME_WINDOW_UPDATE, 0, 0);
260 SaveUint32(p + FRAME_HEAD_SIZE,
261 in.connection_window_size - H2Settings::DEFAULT_INITIAL_WINDOW_SIZE);
262 p += FRAME_HEAD_SIZE + 4;
263 }
264 return static_cast<size_t>(p - (uint8_t*)out);
265}
266
267inline bool AddWindowSize(butil::atomic<int64_t>* window_size, int64_t diff) {
268 // A sender MUST NOT allow a flow-control window to exceed 2^31 - 1.

Callers 2

ConsumeMethod · 0.85
AppendAndDestroySelfMethod · 0.85

Calls 3

SerializeH2SettingsFunction · 0.85
SerializeFrameHeadFunction · 0.85
SaveUint32Function · 0.70

Tested by

no test coverage detected