class EE::System::Compression

#include <compression.hpp>

class Compression {
public:
    // enums

    enum Mode;
    enum Status;

    // structs

    struct Config;
    struct GzipConfig;
    struct ZlibConfig;

    // methods

    static Status compress(Uint8* dst, Uint64 dstMaxSize, const Uint8* src, Uint64 srcSize, Mode mode = MODE_DEFLATE, const Config& config = Config());
    static Status compress(IOStream& dst, IOStream& src, Mode mode = MODE_DEFLATE, const Config& config = Config());
    static int getMaxCompressedBufferSize(Uint64 srcSize, Mode mode = MODE_DEFLATE, const Config& config = Config());
    static Status decompress(Uint8* dst, Uint64 dstMaxSize, const Uint8* src, Uint64 srcSize, Mode mode = MODE_DEFLATE);
    static Status decompress(IOStream& dst, IOStream& src, Mode mode = MODE_DEFLATE);
    static std::size_t getModeDefaultChunkSize(const Mode& mode);
};