23 callback_->onPushMessageBegin(stream, assocStream, msg);
27 StreamID controlStream,
30 callback_->onExMessageBegin(stream, controlStream, unidirectional, msg);
35 std::unique_ptr<HTTPMessage> msg) {
40 std::unique_ptr<folly::IOBuf> chain,
56 std::unique_ptr<HTTPHeaders> trailers) {
62 callback_->onMessageComplete(stream, upgrade);
71 callback_->onFrameHeader(stream_id, flags, length, type, version);
78 callback_->onError(stream, error, newStream);
89 std::unique_ptr<folly::IOBuf> debugData) {
103 callback_->onWindowUpdate(stream, amount);
123 return callback_->onNativeProtocolUpgrade(streamID, protocol, protocolString,
131 callback_->onGenerateFrameHeader(streamID, length, type, version);
135 uint16_t requestId, std::unique_ptr<folly::IOBuf> authRequest) {
140 uint16_t certId, std::unique_ptr<folly::IOBuf> authenticator) {
154 return call_->getHPACKTableInfo();
158 return call_->getProtocol();
162 return call_->getUserAgent();
166 return call_->getTransportDirection();
170 return call_->supportsStreamFlowControl();
174 return call_->supportsSessionFlowControl();
178 return call_->createStream();
186 return call_->isBusy();
190 call_->setParserPaused(paused);
194 return call_->onIngress(buf);
198 call_->onIngressEOF();
203 return call_->onIngressUpgradeMessage(msg);
207 return call_->isReusable();
211 return call_->isWaitingToDrain();
215 return call_->closeOnEgressComplete();
219 return call_->supportsParallelRequests();
223 return call_->supportsPushTransactions();
228 return call_->generateConnectionPreface(writeBuf);
237 return call_->generateHeader(writeBuf, stream, msg, eom, size);
243 StreamID assocStream,
246 return call_->generatePushPromise(buf, stream, msg, assocStream, eom, size);
256 return call_->generateExHeader(writeBuf, stream, msg, exAttributes,
263 std::unique_ptr<folly::IOBuf> chain,
266 return call_->generateBody(writeBuf, stream,
std::move(chain), padding,
274 return call_->generateChunkHeader(writeBuf, stream, length);
280 return call_->generateChunkTerminator(writeBuf, stream);
287 return call_->generateTrailers(writeBuf, stream, trailers);
292 return call_->generateEOM(writeBuf, stream);
299 return call_->generateRstStream(writeBuf, stream, code);
306 std::unique_ptr<folly::IOBuf> debugData) {
307 return call_->generateGoaway(writeBuf, lastStream, statusCode,
313 return call_->generatePingRequest(writeBuf);
319 return call_->generatePingReply(writeBuf, uniqueID);
323 return call_->generateSettings(buf);
327 return call_->generateSettingsAck(buf);
334 return call_->generateWindowUpdate(buf, stream, delta);
341 return call_->generatePriority(writeBuf, stream, pri);
347 std::unique_ptr<folly::IOBuf> chain) {
348 return call_->generateCertificateRequest(
355 std::unique_ptr<folly::IOBuf> certData) {
356 return call_->generateCertificate(writeBuf, certId,
std::move(certData));
360 return call_->getEgressSettings();
364 return call_->getIngressSettings();
368 return call_->enableDoubleGoawayDrain();
373 call_->setHeaderCodecStats(stats);
378 return call_->getLastIncomingStreamID();
382 return call_->getDefaultWindowSize();
387 PriorityQueue& queue,
390 return call_->addPriorityNodes(queue, writeBuf, maxLevel);
395 return call_->mapPriorityToDependency(priority);
400 return call_->mapDependencyToPriority(parent);
size_t generateSettingsAck(folly::IOBufQueue &writeBuf) override
void onSettingsAck() override
HTTPSettings * getEgressSettings() override
size_t onIngress(const folly::IOBuf &buf) override
spdy::GoawayStatusCode statusCode
size_t generateCertificate(folly::IOBufQueue &writeBuf, uint16_t certId, std::unique_ptr< folly::IOBuf > certData) override
void onChunkComplete(StreamID stream) override
void onPriority(StreamID stream, const HTTPMessage::HTTPPriority &pri) override
bool supportsPushTransactions() const override
size_t generateTrailers(folly::IOBufQueue &writeBuf, StreamID stream, const HTTPHeaders &trailers) override
HTTPCodec::StreamID getLastIncomingStreamID() const override
size_t addPriorityNodes(PriorityQueue &queue, folly::IOBufQueue &writeBuf, uint8_t maxLevel) override
StreamID mapPriorityToDependency(uint8_t priority) const override
size_t generateRstStream(folly::IOBufQueue &writeBuf, StreamID stream, ErrorCode statusCode) override
bool isBusy() const override
constexpr detail::Map< Move > move
size_t generateChunkTerminator(folly::IOBufQueue &writeBuf, StreamID stream) override
void enableDoubleGoawayDrain() override
bool supportsSessionFlowControl() const override
void generatePushPromise(folly::IOBufQueue &writeBuf, StreamID stream, const HTTPMessage &msg, StreamID assocStream, bool eom, HTTPHeaderSize *size) override
bool supportsStreamFlowControl() const override
void setParserPaused(bool paused) override
void onIngressEOF() override
size_t generatePriority(folly::IOBufQueue &writeBuf, StreamID stream, const HTTPMessage::HTTPPriority &pri) override
static http_parser_settings settings
uint32_t numOutgoingStreams() const override
bool isWaitingToDrain() const override
void onError(StreamID stream, const HTTPException &error, bool newStream=false) override
size_t generateSettings(folly::IOBufQueue &writeBuf) override
uint32_t numIncomingStreams() const override
size_t generateConnectionPreface(folly::IOBufQueue &writeBuf) override
void onFrameHeader(StreamID stream_id, uint8_t flags, uint64_t length, uint8_t type, uint16_t version=0) override
requires And< SemiMovable< VN >... > &&SemiMovable< E > auto error(E e)
HPACKTableInfo getHPACKTableInfo() const override
void onHeadersComplete(StreamID stream, std::unique_ptr< HTTPMessage > msg) override
size_t generateWindowUpdate(folly::IOBufQueue &writeBuf, StreamID stream, uint32_t delta) override
void onPingReply(uint64_t uniqueID) override
void setCallbackInternal(T2 *cb)
void setCallback(HTTPCodec::Callback *callback) override
size_t generateCertificateRequest(folly::IOBufQueue &writeBuf, uint16_t requestId, std::unique_ptr< folly::IOBuf > chain) override
constexpr auto size(C const &c) -> decltype(c.size())
void writeBuf(const Buf &buf, folly::io::Appender &out)
void generateHeader(folly::IOBufQueue &writeBuf, StreamID stream, const HTTPMessage &msg, bool eom, HTTPHeaderSize *size) override
StreamID createStream() override
CodecProtocol getProtocol() const override
void onAbort(StreamID stream, ErrorCode code) override
bool supportsParallelRequests() const override
size_t generateBody(folly::IOBufQueue &writeBuf, StreamID stream, std::unique_ptr< folly::IOBuf > chain, folly::Optional< uint8_t > padding, bool eom) override
size_t generateEOM(folly::IOBufQueue &writeBuf, StreamID stream) override
void onSettings(const SettingsList &settings) override
const std::string & getUserAgent() const override
void onBody(StreamID stream, std::unique_ptr< folly::IOBuf > chain, uint16_t padding) override
int8_t mapDependencyToPriority(StreamID parent) const override
bool closeOnEgressComplete() const override
bool onIngressUpgradeMessage(const HTTPMessage &msg) override
uint32_t getDefaultWindowSize() const override
bool isReusable() const override
std::tuple< uint32_t, bool, uint8_t > HTTPPriority
void onMessageComplete(StreamID stream, bool upgrade) override
size_t generatePingReply(folly::IOBufQueue &writeBuf, uint64_t uniqueID) override
std::vector< HTTPSetting > SettingsList
void onGoaway(uint64_t lastGoodStreamID, ErrorCode code, std::unique_ptr< folly::IOBuf > debugData=nullptr) override
void onPushMessageBegin(StreamID stream, StreamID assocStream, HTTPMessage *msg) override
void onCertificateRequest(uint16_t requestId, std::unique_ptr< folly::IOBuf > authRequest) override
void onPingRequest(uint64_t uniqueID) override
size_t generatePingRequest(folly::IOBufQueue &writeBuf) override
void onChunkHeader(StreamID stream, size_t length) override
size_t generateGoaway(folly::IOBufQueue &writeBuf, StreamID lastStream, ErrorCode statusCode, std::unique_ptr< folly::IOBuf > debugData=nullptr) override
void onMessageBegin(StreamID stream, HTTPMessage *msg) override
void onTrailersComplete(StreamID stream, std::unique_ptr< HTTPHeaders > trailers) override
const HTTPSettings * getIngressSettings() const override
void generateExHeader(folly::IOBufQueue &writeBuf, StreamID stream, const HTTPMessage &msg, const HTTPCodec::ExAttributes &exAttributes, bool eom, HTTPHeaderSize *size) override
size_t generateChunkHeader(folly::IOBufQueue &writeBuf, StreamID stream, size_t length) override
void onExMessageBegin(StreamID stream, StreamID controlStream, bool unidirectional, HTTPMessage *msg) override
void setHeaderCodecStats(HeaderCodec::Stats *stats) override
void onCertificate(uint16_t certId, std::unique_ptr< folly::IOBuf > authenticator) override
bool onNativeProtocolUpgrade(StreamID stream, CodecProtocol protocol, const std::string &protocolString, HTTPMessage &msg) override
void onWindowUpdate(StreamID stream, uint32_t amount) override
void onGenerateFrameHeader(StreamID streamID, uint8_t type, uint64_t length, uint16_t version) override
folly::Function< void()> parent
TransportDirection getTransportDirection() const override