Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ad5df325 authored by Daniel Zheng's avatar Daniel Zheng
Browse files

decompressor maintenence

cleaning up a bit of code for consistency + adding in zstd to
FromString() function

Test: m libsnapshot
Change-Id: Ic8b7243c5a5ee25326a46e944c13578136f27078
parent fe6c1d55
Loading
Loading
Loading
Loading
+11 −8
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@

#include <array>
#include <cstring>
#include <memory>
#include <utility>
#include <vector>

@@ -62,6 +63,8 @@ std::unique_ptr<IDecompressor> IDecompressor::FromString(std::string_view compre
        return IDecompressor::Brotli();
    } else if (compressor == "gz") {
        return IDecompressor::Gz();
    } else if (compressor == "zstd") {
        return IDecompressor::Zstd();
    } else {
        return nullptr;
    }
@@ -211,10 +214,6 @@ bool GzDecompressor::PartialDecompress(const uint8_t* data, size_t length) {
    return true;
}

std::unique_ptr<IDecompressor> IDecompressor::Gz() {
    return std::unique_ptr<IDecompressor>(new GzDecompressor());
}

class BrotliDecompressor final : public StreamDecompressor {
  public:
    ~BrotliDecompressor();
@@ -275,10 +274,6 @@ bool BrotliDecompressor::PartialDecompress(const uint8_t* data, size_t length) {
    return true;
}

std::unique_ptr<IDecompressor> IDecompressor::Brotli() {
    return std::unique_ptr<IDecompressor>(new BrotliDecompressor());
}

class Lz4Decompressor final : public IDecompressor {
  public:
    ~Lz4Decompressor() override = default;
@@ -382,6 +377,14 @@ class ZstdDecompressor final : public IDecompressor {
    }
};

std::unique_ptr<IDecompressor> IDecompressor::Brotli() {
    return std::make_unique<BrotliDecompressor>();
}

std::unique_ptr<IDecompressor> IDecompressor::Gz() {
    return std::make_unique<GzDecompressor>();
}

std::unique_ptr<IDecompressor> IDecompressor::Lz4() {
    return std::make_unique<Lz4Decompressor>();
}