1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.hadoop.hbase.io.encoding;
18
19 import java.io.ByteArrayInputStream;
20 import java.io.DataInputStream;
21 import java.io.IOException;
22 import java.io.InputStream;
23 import java.nio.ByteBuffer;
24
25 import org.apache.hadoop.hbase.io.compress.Compression;
26 import org.apache.hadoop.hbase.io.compress.Compression.Algorithm;
27
28
29
30
31
32
33
34
35 public class HFileBlockDefaultDecodingContext implements
36 HFileBlockDecodingContext {
37
38 private final Compression.Algorithm compressAlgo;
39
40 public HFileBlockDefaultDecodingContext(
41 Compression.Algorithm compressAlgo) {
42 this.compressAlgo = compressAlgo;
43 }
44
45 @Override
46 public void prepareDecoding(int onDiskSizeWithoutHeader, int uncompressedSizeWithoutHeader,
47 ByteBuffer blockBufferWithoutHeader, byte[] onDiskBlock, int offset) throws IOException {
48 DataInputStream dis = new DataInputStream(new ByteArrayInputStream(onDiskBlock, offset,
49 onDiskSizeWithoutHeader));
50
51 Compression.decompress(blockBufferWithoutHeader.array(),
52 blockBufferWithoutHeader.arrayOffset(), (InputStream) dis, onDiskSizeWithoutHeader,
53 uncompressedSizeWithoutHeader, compressAlgo);
54 }
55
56 @Override
57 public Algorithm getCompression() {
58 return compressAlgo;
59 }
60
61 }