MCPcopy Create free account
hub / github.com/apache/trafficserver / create

Method create

src/proxy/http3/Http3Frame.cc:502–532  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

500}
501
502Http3FrameUPtr
503Http3FrameFactory::create(IOBufferReader &reader)
504{
505 ts::Http3Config::scoped_config params;
506 Http3Frame *frame = nullptr;
507
508 uint8_t type_buf[FRAME_TYPE_MAX_BYTES];
509 reader.memcpy(type_buf, sizeof(type_buf));
510 Http3FrameType type = Http3Frame::type(type_buf, sizeof(type_buf));
511
512 switch (type) {
513 case Http3FrameType::HEADERS:
514 frame = http3HeadersFrameAllocator.alloc();
515 new (frame) Http3HeadersFrame(reader);
516 return Http3FrameUPtr(frame, &Http3FrameDeleter::delete_headers_frame);
517 case Http3FrameType::DATA:
518 frame = http3DataFrameAllocator.alloc();
519 new (frame) Http3DataFrame(reader);
520 return Http3FrameUPtr(frame, &Http3FrameDeleter::delete_data_frame);
521 case Http3FrameType::SETTINGS:
522 frame = http3SettingsFrameAllocator.alloc();
523 new (frame) Http3SettingsFrame(reader, params->max_settings());
524 return Http3FrameUPtr(frame, &Http3FrameDeleter::delete_settings_frame);
525 default:
526 // Unknown frame
527 Dbg(dbg_ctl_http3_frame_factory, "Unknown frame type %hhx", static_cast<uint8_t>(type));
528 frame = http3FrameAllocator.alloc();
529 new (frame) Http3Frame(reader);
530 return Http3FrameUPtr(frame, &Http3FrameDeleter::delete_frame);
531 }
532}
533
534std::shared_ptr<Http3Frame>
535Http3FrameFactory::fast_create(IOBufferReader &reader)

Callers 15

build_base_responseMethod · 0.45
attach_client_sessionMethod · 0.45
state_api_calloutMethod · 0.45
set_next_stateMethod · 0.45
redirect_requestMethod · 0.45
init_smFunction · 0.45
StartRemapRequestMethod · 0.45
DecideCacheLookupMethod · 0.45

Calls 4

memcpyMethod · 0.80
max_settingsMethod · 0.80
typeClass · 0.50
allocMethod · 0.45

Tested by 6

build_requestFunction · 0.36
EasyURLMethod · 0.36
test_decodingFunction · 0.36
test_encodingFunction · 0.36
load_qif_fileFunction · 0.36
test_decodeFunction · 0.36