blob: 9c296c12ca629a5cb05284722238ac11aef70bf5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
#pragma once
#include "StarByteArray.hpp"
#include "StarDataStreamDevices.hpp"
typedef struct ZSTD_CCtx_s ZSTD_CCtx;
typedef struct ZSTD_DCtx_s ZSTD_DCtx;
typedef ZSTD_DCtx ZSTD_DStream;
typedef ZSTD_CCtx ZSTD_CStream;
namespace Star {
class CompressionStream {
public:
CompressionStream();
~CompressionStream();
ByteArray compress(const char* in, size_t inLen);
ByteArray compress(ByteArray const& in);
private:
ZSTD_CStream* m_cStream;
ByteArray m_output;
};
inline ByteArray CompressionStream::compress(ByteArray const& in) {
return compress(in.ptr(), in.size());
}
class DecompressionStream {
public:
DecompressionStream();
~DecompressionStream();
ByteArray decompress(const char* in, size_t inLen);
ByteArray decompress(ByteArray const& in);
private:
ZSTD_DStream* m_dStream;
ByteArray m_output;
};
inline ByteArray DecompressionStream::decompress(ByteArray const& in) {
return decompress(in.ptr(), in.size());
}
}
|