blob: a3b258f9b1039698e0a03614380155b6a69fd9be (
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
47
48
49
|
#ifndef PACKER_H
#define PACKER_H
#include "../third-party/lzma/LzmaEnc.h"
class IArchitecture;
struct PackerInputStream
{
ISeqInStream p;
IArchitecture *file;
Data *data;
size_t size;
size_t pos;
PackerInputStream(IArchitecture *file_, size_t size_);
PackerInputStream(Data *data_);
};
struct PackerOutputStream
{
ISeqOutStream p;
Data *data;
PackerOutputStream(Data *data_);
};
struct PackerProgress
{
ICompressProgress p;
IArchitecture *file;
uint64_t last_pos;
PackerProgress(IArchitecture *file_);
};
class Packer
{
public:
Packer();
~Packer();
bool Code(IArchitecture *file, size_t size, Data *data);
bool Code(IArchitecture *file, Data *in_data, Data *out_data);
bool WriteProps(Data *data);
private:
bool Code(IArchitecture *file, PackerInputStream &in, PackerOutputStream &out);
CLzmaEncHandle encoder_;
CLzmaEncProps props_;
};
#endif
|