aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2021-04-22 10:23:20 +0200
committerEelco Dolstra <edolstra@gmail.com>2021-04-22 10:23:20 +0200
commit53857552278173641c0489a3196c51aab769bac8 (patch)
tree35cfdb7fcaac61a187fdabbc508afdc0f38b1606 /src
parenta6eebcff36164735ff4523012d65c96ca497c905 (diff)
Remove makeDecompressionSource()
This function doesn't support all compression methods (i.e. 'none' and 'br') so it shouldn't be exposed. Also restore the original decompress() as a wrapper around makeDecompressionSink().
Diffstat (limited to 'src')
-rw-r--r--src/libutil/compression.cc25
-rw-r--r--src/libutil/compression.hh2
2 files changed, 6 insertions, 21 deletions
diff --git a/src/libutil/compression.cc b/src/libutil/compression.cc
index c5dae42fa..7e725cae1 100644
--- a/src/libutil/compression.cc
+++ b/src/libutil/compression.cc
@@ -186,19 +186,11 @@ struct BrotliDecompressionSink : ChunkedCompressionSink
ref<std::string> decompress(const std::string & method, const std::string & in)
{
- if (method == "none" || method == "")
- return make_ref<std::string>(in);
- else if (method == "br") {
- StringSink ssink;
- auto sink = makeDecompressionSink(method, ssink);
- (*sink)(in);
- sink->finish();
- return ssink.s;
- } else {
- StringSource ssrc(in);
- auto src = makeDecompressionSource(ssrc);
- return make_ref<std::string>(src->drain());
- }
+ StringSink ssink;
+ auto sink = makeDecompressionSink(method, ssink);
+ (*sink)(in);
+ sink->finish();
+ return ssink.s;
}
std::unique_ptr<FinishSink> makeDecompressionSink(const std::string & method, Sink & nextSink)
@@ -209,7 +201,7 @@ std::unique_ptr<FinishSink> makeDecompressionSink(const std::string & method, Si
return std::make_unique<BrotliDecompressionSink>(nextSink);
else
return sourceToSink([&](Source & source) {
- auto decompressionSource = makeDecompressionSource(source);
+ auto decompressionSource = std::make_unique<ArchiveDecompressionSource>(source);
decompressionSource->drainInto(nextSink);
});
}
@@ -267,11 +259,6 @@ struct BrotliCompressionSink : ChunkedCompressionSink
}
};
-std::unique_ptr<Source> makeDecompressionSource(Source & prev)
-{
- return std::unique_ptr<Source>(new ArchiveDecompressionSource(prev));
-}
-
ref<CompressionSink> makeCompressionSink(const std::string & method, Sink & nextSink, const bool parallel)
{
std::vector<std::string> la_supports = {
diff --git a/src/libutil/compression.hh b/src/libutil/compression.hh
index a140f8be2..338a0d9f2 100644
--- a/src/libutil/compression.hh
+++ b/src/libutil/compression.hh
@@ -15,8 +15,6 @@ struct CompressionSink : BufferedSink, FinishSink
using FinishSink::finish;
};
-std::unique_ptr<Source> makeDecompressionSource(Source & prev);
-
ref<std::string> decompress(const std::string & method, const std::string & in);
std::unique_ptr<FinishSink> makeDecompressionSink(const std::string & method, Sink & nextSink);