org.apache.cassandra.io.compress

## Class CompressionMetadata

- java.lang.Object
- - org.apache.cassandra.io.compress.CompressionMetadata

    public class CompressionMetadata
    extends java.lang.Object

Holds metadata about compressed file

### Nested Class Summary

Nested Classes
`static class` `CompressionMetadata.Chunk` Holds offset and length of the file chunk
`static class` `CompressionMetadata.Writer`

### Field Summary

Fields
`long` `compressedFileLength`
`long` `dataLength`
`java.lang.String` `indexFilePath`
`CompressionParameters` `parameters`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`CompressionMetadata.Chunk` `chunkFor(long position)` Get a chunk of compressed data (offset, length) corresponding to given position
`int` `chunkLength()`
`void` `close()`
`ICompressor` `compressor()`
`static CompressionMetadata` `create(java.lang.String dataFilePath)` Create metadata about given compressed file including uncompressed data length, chunk size and list of the chunk offsets of the compressed data.
`CompressionMetadata.Chunk[]` `getChunksForSections(java.util.Collection<Pair<java.lang.Long,java.lang.Long>> sections)`
`long` `getTotalSizeForSections(java.util.Collection<Pair<java.lang.Long,java.lang.Long>> sections)`
`long` `offHeapSize()` Returns the amount of memory in bytes used off heap.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### dataLength

    public final long dataLength

#### compressedFileLength

    public final long compressedFileLength

#### indexFilePath

    public final java.lang.String indexFilePath

#### parameters

    public final CompressionParameters parameters

### Method Detail

#### create

    public static CompressionMetadata create(java.lang.String dataFilePath)

Create metadata about given compressed file including uncompressed data length, chunk size and list of the chunk offsets of the compressed data. This is an expensive operation! Don't create more than one for each sstable.

Parameters:
  `dataFilePath` - Path to the compressed file
Returns:
  metadata about given compressed file.

#### compressor

    public ICompressor compressor()

#### chunkLength

    public int chunkLength()

#### offHeapSize

    public long offHeapSize()

Returns the amount of memory in bytes used off heap.

Returns:
  the amount of memory in bytes used off heap

#### chunkFor

    public CompressionMetadata.Chunk chunkFor(long position)

Get a chunk of compressed data (offset, length) corresponding to given position

Parameters:
  `position` - Position in the file.
Returns:
  pair of chunk offset and length.

#### getTotalSizeForSections

    public long getTotalSizeForSections(java.util.Collection<Pair<java.lang.Long,java.lang.Long>> sections)

Parameters:
  `sections` - Collection of sections in uncompressed file. Should not contain sections that overlap each other.
Returns:
  Total chunk size in bytes for given sections including checksum.

#### getChunksForSections

    public CompressionMetadata.Chunk[] getChunksForSections(java.util.Collection<Pair<java.lang.Long,java.lang.Long>> sections)

Parameters:
  `sections` - Collection of sections in uncompressed file
Returns:
  Array of chunks which corresponds to given sections of uncompressed file, sorted by chunk offset

#### close

    public void close()