Lhaz
読み取り中…
検索中…
一致する文字列を見つけられません
xzfile.h
[詳解]
1/*==========================================================================*/
2/* Lhaz xzfileインタフェース lhaz@chitora.jp */
3/*==========================================================================*/
4#pragma once
5
6#include <vector>
7#include "lzma.h"
8#include "mybuf.h"
9
10using namespace std;
12class MYSTR;
13class MYFILE;
14
15class XZFILE {
16
17public:
18 static const uint8_t HEADER_MAGIC[6];
19 //
20 XZFILE(void) :
22 {
23 }
24 //
25 uint64_t GetUnCompressedSize(void) const { return UnCompressedSize; }
26 bool Get(const MYSTR& name);
27 bool Test(const MYSTR& name);
28
29private:
31 SF_CRC32 = 0x01,
32 SF_CRC64 = 0x04,
33 SF_SHA256 = 0x0A,
34 };
41 //
42 static const uint8_t FOOTER_MAGIC[2];
43 //
46 uint8_t stream_flags[2];
47 uint32_t crc32;
49 struct block_t {
52 uint8_t block_flags;
56 uint64_t filter_id;
59 };
60 vector<filter_flags_t> filter_flags;
62 uint32_t crc32;
66 MYBUF check;
67 };
68 vector<block_t> block;
69 struct index_t {
72 struct record_t {
73 uint64_t unpadded_size;
75 };
76 vector<record_t> record;
78 uint32_t crc32;
86 //
88 //
89 bool GetVli(MYFILE& fp, uint64_t& ret, uint64_t& read);
90
91};
Definition xzfile.h:15
bool GetVli(MYFILE &fp, uint64_t &ret, uint64_t &read)
Definition xzfile.cpp:251
XZFILE(void)
Definition xzfile.h:20
BLOCK_FLAGS
Definition xzfile.h:35
@ BF_NUMBER_OF_FILTERS_M
Definition xzfile.h:36
@ BF_COMPRESSED_SIZE_PRESENT
Definition xzfile.h:38
@ BF_UNCOMPRESSED_SIZE_PRESENT
Definition xzfile.h:39
@ BF_RESERVED_M
Definition xzfile.h:37
bool Test(const MYSTR &name)
Definition xzfile.cpp:98
struct XZFILE::index_t index
static const uint8_t FOOTER_MAGIC[2]
Definition xzfile.h:11
uint64_t UnCompressedSize
Definition xzfile.h:87
struct XZFILE::stream_footer_t stream_footer
STREAM_FLAGS
Definition xzfile.h:30
@ SF_CRC32
Definition xzfile.h:31
@ SF_SHA256
Definition xzfile.h:33
@ SF_CRC64
Definition xzfile.h:32
vector< block_t > block
Definition xzfile.h:68
static const uint8_t HEADER_MAGIC[6]
Definition xzfile.h:10
struct XZFILE::stream_header_t stream_header
uint64_t GetUnCompressedSize(void) const
Definition xzfile.h:25
bool Get(const MYSTR &name)
Definition xzfile.cpp:16
MYBUF filter_properties
Definition xzfile.h:58
uint64_t filter_id
Definition xzfile.h:56
uint64_t size_of_properties
Definition xzfile.h:57
Definition xzfile.h:50
uint64_t uncompressed_size
Definition xzfile.h:54
MYBUF header_padding
Definition xzfile.h:61
uint8_t block_flags
Definition xzfile.h:52
vector< filter_flags_t > filter_flags
Definition xzfile.h:60
uint32_t crc32
Definition xzfile.h:62
uint64_t compressed_size
Definition xzfile.h:53
uint8_t block_header_size
Definition xzfile.h:51
Definition xzfile.h:49
MYBUF block_padding
Definition xzfile.h:65
MYBUF compressed_data
Definition xzfile.h:64
MYBUF check
Definition xzfile.h:66
struct XZFILE::block_t::block_header_t block_header
Definition xzfile.h:72
uint64_t unpadded_size
Definition xzfile.h:73
uint64_t uncompressed_size
Definition xzfile.h:74
Definition xzfile.h:69
uint32_t crc32
Definition xzfile.h:78
uint8_t index_indicator
Definition xzfile.h:70
uint64_t number_of_records
Definition xzfile.h:71
vector< record_t > record
Definition xzfile.h:76
MYBUF index_padding
Definition xzfile.h:77
Definition xzfile.h:44
uint8_t header_magic_bytes[6]
Definition xzfile.h:45
uint32_t crc32
Definition xzfile.h:47
uint8_t stream_flags[2]
Definition xzfile.h:46