25 namespace folly {
namespace io {
42 int spdyCompressionLevel = Z_NO_COMPRESSION);
50 bool supportsStreamFlowControl()
const override;
51 bool supportsSessionFlowControl()
const override;
67 std::unique_ptr<folly::IOBuf> chain,
72 size_t length)
override;
83 size_t generateGoaway(
87 std::unique_ptr<folly::IOBuf> debugData =
nullptr)
override;
102 return &ingressSettings_;
114 uint8_t getMinorVersion()
const;
116 void setMaxFrameLength(
uint32_t maxFrameLength);
121 void setMaxUncompressedHeaders(
uint32_t maxUncompressed);
124 headerCodec_.setStats(stats);
127 size_t addPriorityNodes(
133 return MAX_STREAM_ID + priority;
137 if (parent >= MAX_STREAM_ID) {
138 return parent - MAX_STREAM_ID;
165 void generateSynStream(
StreamID stream,
174 void generateSynReply(
StreamID stream,
194 void onSynStream(
uint32_t assocStream,
216 void onGoaway(
uint32_t lastGoodStream,
274 std::unique_ptr<folly::IOBuf> payload);
285 std::unique_ptr<folly::IOBuf> serializeRequestHeaders(
299 std::unique_ptr<folly::IOBuf> serializeResponseHeaders(
314 std::unique_ptr<folly::IOBuf> encodeHeaders(
315 const HTTPMessage& msg, std::vector<compress::Header>& headers,
322 void failSession(
uint32_t statusCode);
339 bool rstStatusSupported(
int statusCode)
const;
350 {SettingsId::INITIAL_WINDOW_SIZE, spdy::kInitialWindow}
const HTTPSettings * getIngressSettings() const override
const uint32_t kInitialWindow
const uint32_t kMaxFrameLength
spdy::GoawayStatusCode statusCode
std::unique_ptr< HTTPMessage > partialMsg_
std::vector< SettingData > SettingList
static http_parser_settings settings
—— Concurrent Priority Queue Implementation ——
bool supportsPushTransactions() const override
requires E e noexcept(noexcept(s.error(std::move(e))))
constexpr auto size(C const &c) -> decltype(c.size())
void writeBuf(const Buf &buf, folly::io::Appender &out)
std::deque< HeaderPiece > HeaderPieceList
HTTPSettings * getEgressSettings() override
SettingData(uint8_t inFlags, uint32_t inId, uint32_t inValue)
StreamID mapPriorityToDependency(uint8_t priority) const override
StreamID nextEgressPingID_
ErrorCode parseHeaders(Cursor &cursor, const FrameHeader &header, folly::Optional< PriorityUpdate > &outPriority, std::unique_ptr< IOBuf > &outBuf) noexcept
const std::string empty_string
void setHeaderCodecStats(HeaderCodec::Stats *stats) override
uint64_t value(const typename LockFreeRingBuffer< T, Atom >::Cursor &rbcursor)
GzipHeaderCodec headerCodec_
uint32_t getDefaultWindowSize() const override
const uint32_t kMaxConcurrentStreams
const SPDYVersionSettings & versionSettings_
folly::fbvector< StreamID > closedStreams_
int8_t mapDependencyToPriority(StreamID parent) const override
folly::Function< void()> parent