Data Fields

lzma_index_iter Struct Reference

Iterator to get information about Blocks and Streams. More...

#include <index.h>

Data Fields

struct {
   const lzma_stream_flags *   flags
 Pointer to Stream Flags.
   const void *   reserved_ptr1
   const void *   reserved_ptr2
   const void *   reserved_ptr3
   lzma_vli   number
 Stream number in the lzma_index.
   lzma_vli   block_count
 Number of Blocks in the Stream.
   lzma_vli   compressed_offset
 Compressed start offset of this Stream.
   lzma_vli   uncompressed_offset
 Uncompressed start offset of this Stream.
   lzma_vli   compressed_size
 Compressed size of this Stream.
   lzma_vli   uncompressed_size
 Uncompressed size of this Stream.
   lzma_vli   padding
 Size of Stream Padding after this Stream.
   lzma_vli   reserved_vli1
   lzma_vli   reserved_vli2
   lzma_vli   reserved_vli3
   lzma_vli   reserved_vli4
stream
struct {
   lzma_vli   number_in_file
 Block number in the file.
   lzma_vli   compressed_file_offset
 Compressed start offset of this Block.
   lzma_vli   uncompressed_file_offset
 Uncompressed start offset of this Block.
   lzma_vli   number_in_stream
 Block number in this Stream.
   lzma_vli   compressed_stream_offset
 Compressed start offset of this Block.
   lzma_vli   uncompressed_stream_offset
 Uncompressed start offset of this Block.
   lzma_vli   uncompressed_size
 Uncompressed size of this Block.
   lzma_vli   unpadded_size
 Unpadded size of this Block.
   lzma_vli   total_size
 Total compressed size.
   lzma_vli   reserved_vli1
   lzma_vli   reserved_vli2
   lzma_vli   reserved_vli3
   lzma_vli   reserved_vli4
   const void *   reserved_ptr1
   const void *   reserved_ptr2
   const void *   reserved_ptr3
   const void *   reserved_ptr4
block
union {
   const void *   p
   size_t   s
   lzma_vli   v
internal [6]

Detailed Description

Iterator to get information about Blocks and Streams.


Field Documentation

Pointer to Stream Flags.

This is NULL if Stream Flags have not been set for this Stream with lzma_index_stream_flags().

Referenced by parse_block_header(), and parse_check_value().

Stream number in the lzma_index.

The first Stream is 1.

Number of Blocks in the Stream.

If this is zero, the block structure below has undefined values.

Compressed start offset of this Stream.

The offset is relative to the beginning of the lzma_index (i.e. usually the beginning of the .xz file).

Uncompressed start offset of this Stream.

The offset is relative to the beginning of the lzma_index (i.e. usually the beginning of the .xz file).

Compressed size of this Stream.

This includes all headers except the possible Stream Padding after this Stream.

Uncompressed size of this Stream.

Uncompressed size of this Block.

You should pass this to the Block decoder if you will decode this Block. It will allow the Block decoder to validate the uncompressed size.

Size of Stream Padding after this Stream.

If it hasn't been set with lzma_index_stream_padding(), this defaults to zero. Stream Padding is always a multiple of four bytes.

Block number in the file.

The first Block is 1.

Compressed start offset of this Block.

This offset is relative to the beginning of the lzma_index (i.e. usually the beginning of the .xz file). Normally this is where you should seek in the .xz file to start decompressing this Block.

Referenced by parse_block_header(), and parse_check_value().

Uncompressed start offset of this Block.

This offset is relative to the beginning of the lzma_index (i.e. usually the beginning of the .xz file).

When doing random-access reading, it is possible that the target offset is not exactly at Block boundary. One will need to compare the target offset against uncompressed_file_offset or uncompressed_stream_offset, and possibly decode and throw away some amount of data before reaching the target offset.

Block number in this Stream.

The first Block is 1.

Compressed start offset of this Block.

This offset is relative to the beginning of the Stream containing this Block.

Uncompressed start offset of this Block.

This offset is relative to the beginning of the Stream containing this Block.

Unpadded size of this Block.

You should pass this to the Block decoder if you will decode this Block. It will allow the Block decoder to validate the unpadded size.

Referenced by parse_block_header().

Total compressed size.

This includes all headers and padding in this Block. This is useful if you need to know how many bytes the Block decoder will actually read.

Referenced by parse_block_header(), and parse_check_value().


The documentation for this struct was generated from the following file: