1
0
mirror of https://github.com/facebook/proxygen.git synced 2026-10-24 01:33:54 +03:00

Move ZlibStreamDecompressor into decompression

Summary:
**Context:** Group Proxygen decompression classes and helpers in `proxygen::decompression`.

**This diff:** Move `ZlibStreamDecompressor` and its associated constants into that namespace and update its live callers across fbsource. Include embedded C++ callers and retain existing include paths.

Differential Revision: D126117908

fbshipit-source-id: 16c1bc41778169841b2e906606681b2efaf25cbd
This commit is contained in:
Erin Kramer
2026-10-22 10:45:49 -07:00
committed by meta-codesync[bot]
parent a6300ef48a
commit c19c392332
7 changed files with 27 additions and 20 deletions

View File

@@ -36,7 +36,8 @@ MATCHER_P(IOBufEquals,
struct ZlibTest {
static std::unique_ptr<StreamDecompressor> makeDecompressor() {
return std::make_unique<ZlibStreamDecompressor>(CompressionType::GZIP);
return std::make_unique<proxygen::decompression::ZlibStreamDecompressor>(
CompressionType::GZIP);
}
static std::string getExpectedEncoding() {
return "gzip";

View File

@@ -105,7 +105,9 @@ void DecompressionIngressFilter::initializeWithHTTPMessage(HTTPMessage& msg) {
if (it->type == CompressionType::ZSTD) {
decompressor_ = std::make_unique<ZstdStreamDecompressor>();
} else {
decompressor_ = std::make_unique<ZlibStreamDecompressor>(it->type);
decompressor_ =
std::make_unique<proxygen::decompression::ZlibStreamDecompressor>(
it->type);
}
} else if (statsCallback_) {
statsCallback_->onDecompressionAlgo("");

View File

@@ -27,7 +27,8 @@ MATCHER_P(IOBufEquals, expected, "") {
struct ZlibTest {
static std::unique_ptr<StreamDecompressor> makeDecompressor() {
return std::make_unique<ZlibStreamDecompressor>(CompressionType::GZIP);
return std::make_unique<proxygen::decompression::ZlibStreamDecompressor>(
CompressionType::GZIP);
}
static std::string getExpectedEncoding() {
return "gzip";

View File

@@ -68,8 +68,9 @@ void ZlibStreamCompressor::init() {
switch (type_) {
case CompressionType::GZIP: {
auto windowBits = type_ == CompressionType::GZIP ? GZIP_WINDOW_BITS
: DEFLATE_WINDOW_BITS;
auto windowBits = type_ == CompressionType::GZIP
? proxygen::decompression::GZIP_WINDOW_BITS
: proxygen::decompression::DEFLATE_WINDOW_BITS;
status_ = deflateInit2(&zlibStream_,
level_,
Z_DEFLATED,

View File

@@ -13,7 +13,7 @@
using folly::IOBuf;
namespace proxygen {
namespace proxygen::decompression {
void ZlibStreamDecompressor::init(CompressionType type) {
DCHECK(type_ == CompressionType::NONE) << "Must be uninitialized";
@@ -120,4 +120,4 @@ std::unique_ptr<IOBuf> ZlibStreamDecompressor::decompress(const IOBuf* in) {
return out;
}
} // namespace proxygen
} // namespace proxygen::decompression

View File

@@ -18,7 +18,7 @@ namespace folly {
class IOBuf;
}
namespace proxygen {
namespace proxygen::decompression {
namespace {
constexpr uint64_t kZlibDecompressorBufferGrowthDefault = 480;
@@ -74,4 +74,4 @@ class ZlibStreamDecompressor : public StreamDecompressor {
uint64_t totalInputBytes_{0};
uint64_t totalOutputBytes_{0};
};
} // namespace proxygen
} // namespace proxygen::decompression

View File

@@ -42,7 +42,8 @@ std::unique_ptr<folly::IOBuf> makeBuf(uint32_t size) {
void verify(CompressionType type,
std::unique_ptr<IOBuf> original,
std::unique_ptr<IOBuf> compressed) {
auto zd = std::make_unique<ZlibStreamDecompressor>(type);
auto zd =
std::make_unique<proxygen::decompression::ZlibStreamDecompressor>(type);
auto decompressed = zd->decompress(compressed.get());
ASSERT_FALSE(zd->hasError()) << "Decompression error. r=" << zd->getStatus();
@@ -177,10 +178,10 @@ TEST_F(ZlibTests, MaxDecompressionRatio_FailsWhenRatioTooSmall) {
auto compressed = compressBuf(CompressionType::GZIP, original);
ASSERT_NE(compressed, nullptr);
auto zd = std::make_unique<ZlibStreamDecompressor>(
auto zd = std::make_unique<proxygen::decompression::ZlibStreamDecompressor>(
CompressionType::GZIP,
kZlibDecompressorBufferGrowthDefault,
kZlibDecompressorBufferMinsizeDefault,
proxygen::decompression::kZlibDecompressorBufferGrowthDefault,
proxygen::decompression::kZlibDecompressorBufferMinsizeDefault,
/*maxDecompressionRatio=*/10);
auto decompressed = zd->decompress(compressed.get());
@@ -196,10 +197,10 @@ TEST_F(ZlibTests, MaxDecompressionRatio_PassesWhenRatioLargeEnough) {
ASSERT_NE(compressed, nullptr);
// Use a very large ratio so decompression succeeds.
auto zd = std::make_unique<ZlibStreamDecompressor>(
auto zd = std::make_unique<proxygen::decompression::ZlibStreamDecompressor>(
CompressionType::GZIP,
kZlibDecompressorBufferGrowthDefault,
kZlibDecompressorBufferMinsizeDefault,
proxygen::decompression::kZlibDecompressorBufferGrowthDefault,
proxygen::decompression::kZlibDecompressorBufferMinsizeDefault,
/*maxDecompressionRatio=*/1000000);
auto decompressed = zd->decompress(compressed.get());
@@ -216,7 +217,8 @@ TEST_F(ZlibTests, MaxDecompressionRatio_PassesWhenUnspecified) {
ASSERT_NE(compressed, nullptr);
// Default: no ratio limit.
auto zd = std::make_unique<ZlibStreamDecompressor>(CompressionType::GZIP);
auto zd = std::make_unique<proxygen::decompression::ZlibStreamDecompressor>(
CompressionType::GZIP);
auto decompressed = zd->decompress(compressed.get());
EXPECT_FALSE(zd->hasError());
@@ -233,10 +235,10 @@ TEST_F(ZlibTests, MaxDecompressionRatio_StreamingChunksFailure) {
auto compressed = compressBuf(CompressionType::GZIP, original);
ASSERT_NE(compressed, nullptr);
auto zd = std::make_unique<ZlibStreamDecompressor>(
auto zd = std::make_unique<proxygen::decompression::ZlibStreamDecompressor>(
CompressionType::GZIP,
kZlibDecompressorBufferGrowthDefault,
kZlibDecompressorBufferMinsizeDefault,
proxygen::decompression::kZlibDecompressorBufferGrowthDefault,
proxygen::decompression::kZlibDecompressorBufferMinsizeDefault,
/*maxDecompressionRatio=*/10);
// Split compressed data into small chunks.