mirror of
https://github.com/facebook/proxygen.git
synced 2026-10-24 01:33:54 +03:00
Move ZstdStreamDecompressor into decompression
Summary: **Context:** Group Proxygen decompression classes and helpers in `proxygen::decompression`. **This diff:** Move `ZstdStreamDecompressor` and its associated constants into that namespace and update its live callers across fbsource. Include embedded C++ callers and retain existing include paths. ___ landed-with-radar-review Differential Revision: D126117909 fbshipit-source-id: e77f003a6b475376187462011b43b05900614c7c
This commit is contained in:
committed by
meta-codesync[bot]
parent
c19c392332
commit
ce435f35a9
@@ -17,7 +17,8 @@ void DecompressionFilter::onRequest(std::unique_ptr<HTTPMessage> msg) noexcept {
|
||||
auto contentEncoding =
|
||||
headers.getSingleOrNullptr(HTTP_HEADER_CONTENT_ENCODING);
|
||||
if (contentEncoding && *contentEncoding == "zstd") {
|
||||
decompressor_ = std::make_unique<ZstdStreamDecompressor>();
|
||||
decompressor_ =
|
||||
std::make_unique<proxygen::decompression::ZstdStreamDecompressor>();
|
||||
headers.remove(HTTP_HEADER_CONTENT_ENCODING);
|
||||
headers.remove(HTTP_HEADER_CONTENT_LENGTH);
|
||||
}
|
||||
|
||||
@@ -49,7 +49,7 @@ struct ZlibTest {
|
||||
|
||||
struct ZstdTest {
|
||||
static std::unique_ptr<StreamDecompressor> makeDecompressor() {
|
||||
return std::make_unique<ZstdStreamDecompressor>();
|
||||
return std::make_unique<proxygen::decompression::ZstdStreamDecompressor>();
|
||||
}
|
||||
static std::string getExpectedEncoding() {
|
||||
return "zstd";
|
||||
|
||||
@@ -103,7 +103,8 @@ void DecompressionIngressFilter::initializeWithHTTPMessage(HTTPMessage& msg) {
|
||||
statsCallback_->onDecompressionAlgo(std::string(it->name));
|
||||
}
|
||||
if (it->type == CompressionType::ZSTD) {
|
||||
decompressor_ = std::make_unique<ZstdStreamDecompressor>();
|
||||
decompressor_ =
|
||||
std::make_unique<proxygen::decompression::ZstdStreamDecompressor>();
|
||||
} else {
|
||||
decompressor_ =
|
||||
std::make_unique<proxygen::decompression::ZlibStreamDecompressor>(
|
||||
|
||||
@@ -40,7 +40,7 @@ struct ZlibTest {
|
||||
|
||||
struct ZstdTest {
|
||||
static std::unique_ptr<StreamDecompressor> makeDecompressor() {
|
||||
return std::make_unique<ZstdStreamDecompressor>();
|
||||
return std::make_unique<proxygen::decompression::ZstdStreamDecompressor>();
|
||||
}
|
||||
static std::string getExpectedEncoding() {
|
||||
return "zstd";
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
#include <folly/io/Cursor.h>
|
||||
#include <folly/io/IOBuf.h>
|
||||
|
||||
namespace proxygen {
|
||||
namespace proxygen::decompression {
|
||||
|
||||
void ZstdStreamDecompressor::freeDCtx(ZSTD_DCtx* dctx) {
|
||||
ZSTD_freeDCtx(dctx);
|
||||
@@ -88,4 +88,4 @@ std::unique_ptr<folly::IOBuf> ZstdStreamDecompressor::decompress(
|
||||
|
||||
return out;
|
||||
}
|
||||
} // namespace proxygen
|
||||
} // namespace proxygen::decompression
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
|
||||
#include <proxygen/lib/utils/StreamDecompressor.h>
|
||||
|
||||
namespace proxygen {
|
||||
namespace proxygen::decompression {
|
||||
|
||||
constexpr uint64_t kDefaultMaxZstdDecompressionRatio = 1000;
|
||||
|
||||
@@ -72,4 +72,4 @@ class ZstdStreamDecompressor : public StreamDecompressor {
|
||||
uint64_t totalInputBytes_{0};
|
||||
uint64_t totalOutputBytes_{0};
|
||||
};
|
||||
} // namespace proxygen
|
||||
} // namespace proxygen::decompression
|
||||
|
||||
@@ -42,7 +42,8 @@ std::unique_ptr<folly::IOBuf> makeBuf(uint32_t size) {
|
||||
void verify(std::unique_ptr<IOBuf> original,
|
||||
std::unique_ptr<IOBuf> compressed,
|
||||
bool reuseBuf) {
|
||||
auto zd = std::make_unique<ZstdStreamDecompressor>(reuseBuf);
|
||||
auto zd = std::make_unique<proxygen::decompression::ZstdStreamDecompressor>(
|
||||
reuseBuf);
|
||||
|
||||
auto decompressed = zd->decompress(compressed.get());
|
||||
ASSERT_FALSE(zd->hasError()) << "Decompression error.";
|
||||
@@ -56,7 +57,8 @@ void verify(std::unique_ptr<IOBuf> original,
|
||||
void verifyPieces(std::unique_ptr<IOBuf> original,
|
||||
std::vector<std::unique_ptr<IOBuf>> compressed,
|
||||
bool reuseBuf) {
|
||||
auto zd = std::make_unique<ZstdStreamDecompressor>(reuseBuf);
|
||||
auto zd = std::make_unique<proxygen::decompression::ZstdStreamDecompressor>(
|
||||
reuseBuf);
|
||||
|
||||
auto decompressed = folly::IOBuf::create(0);
|
||||
|
||||
@@ -260,7 +262,7 @@ TEST_F(ZstdTests, MaxDecompressionRatio_FailsWhenRatioTooSmall) {
|
||||
auto compressed = compress(original);
|
||||
ASSERT_NE(compressed, nullptr);
|
||||
|
||||
auto zd = std::make_unique<ZstdStreamDecompressor>(
|
||||
auto zd = std::make_unique<proxygen::decompression::ZstdStreamDecompressor>(
|
||||
/*reuseOutBuf=*/false, /*maxDecompressionRatio=*/10);
|
||||
|
||||
auto decompressed = zd->decompress(compressed.get());
|
||||
@@ -275,7 +277,7 @@ TEST_F(ZstdTests, MaxDecompressionRatio_PassesWhenRatioLargeEnough) {
|
||||
ASSERT_NE(compressed, nullptr);
|
||||
|
||||
// Use a very large ratio so decompression succeeds.
|
||||
auto zd = std::make_unique<ZstdStreamDecompressor>(
|
||||
auto zd = std::make_unique<proxygen::decompression::ZstdStreamDecompressor>(
|
||||
/*reuseOutBuf=*/false, /*maxDecompressionRatio=*/1000000);
|
||||
|
||||
auto decompressed = zd->decompress(compressed.get());
|
||||
@@ -291,7 +293,7 @@ TEST_F(ZstdTests, MaxDecompressionRatio_PassesWhenExplicitlyUnlimited) {
|
||||
ASSERT_NE(compressed, nullptr);
|
||||
|
||||
// Explicitly opt out of ratio limit.
|
||||
auto zd = std::make_unique<ZstdStreamDecompressor>(
|
||||
auto zd = std::make_unique<proxygen::decompression::ZstdStreamDecompressor>(
|
||||
/*reuseOutBuf=*/false, /*maxDecompressionRatio=*/std::nullopt);
|
||||
|
||||
auto decompressed = zd->decompress(compressed.get());
|
||||
@@ -308,7 +310,7 @@ TEST_F(ZstdTests, MaxDecompressionRatio_StreamingChunksFailure) {
|
||||
auto compressed = compress(original);
|
||||
ASSERT_NE(compressed, nullptr);
|
||||
|
||||
auto zd = std::make_unique<ZstdStreamDecompressor>(
|
||||
auto zd = std::make_unique<proxygen::decompression::ZstdStreamDecompressor>(
|
||||
/*reuseOutBuf=*/false, /*maxDecompressionRatio=*/10);
|
||||
|
||||
// Split compressed data into small chunks.
|
||||
|
||||
Reference in New Issue
Block a user