@InterfaceAudience.Private public class IPCUtil extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
IPCUtil.CellScannerButNoCodecException
Thrown if a cellscanner but no codec to encode it with.
|
Modifier and Type | Field and Description |
---|---|
static Log |
LOG |
Constructor and Description |
---|
IPCUtil(Configuration conf) |
Modifier and Type | Method and Description |
---|---|
java.nio.ByteBuffer |
buildCellBlock(Codec codec,
CompressionCodec compressor,
CellScanner cellScanner)
Puts CellScanner Cells into a cell block using passed in
codec and/or
compressor . |
java.nio.ByteBuffer |
buildCellBlock(Codec codec,
CompressionCodec compressor,
CellScanner cellScanner,
BoundedByteBufferPool pool)
Puts CellScanner Cells into a cell block using passed in
codec and/or
compressor . |
CellScanner |
createCellScanner(Codec codec,
CompressionCodec compressor,
byte[] cellBlock) |
CellScanner |
createCellScanner(Codec codec,
CompressionCodec compressor,
java.nio.ByteBuffer cellBlock) |
static java.nio.ByteBuffer |
getDelimitedMessageAsByteBuffer(Message m) |
static int |
getTotalSizeWhenWrittenDelimited(Message... messages) |
static void |
readChunked(java.io.DataInput in,
byte[] dest,
int offset,
int len)
Read in chunks of 8K (HBASE-7239)
|
static int |
write(java.io.OutputStream dos,
Message header,
Message param,
java.nio.ByteBuffer cellBlock)
Write out header, param, and cell block if there is one.
|
public java.nio.ByteBuffer buildCellBlock(Codec codec, CompressionCodec compressor, CellScanner cellScanner) throws java.io.IOException
codec
and/or
compressor
.codec
- compressor
- cellScanner
- codec
and/or compressor
; the returned buffer has been
flipped and is ready for reading. Use limit to find total size.java.io.IOException
public java.nio.ByteBuffer buildCellBlock(Codec codec, CompressionCodec compressor, CellScanner cellScanner, BoundedByteBufferPool pool) throws java.io.IOException
codec
and/or
compressor
.codec
- compressor
- cellScanner
- pool
- Pool of ByteBuffers to make use of. Can be null and then we'll allocate
our own ByteBuffer.codec
and/or compressor
; the returned buffer has been
flipped and is ready for reading. Use limit to find total size. If pool
was not
null, then this returned ByteBuffer came from there and should be returned to the pool when
done.java.io.IOException
public CellScanner createCellScanner(Codec codec, CompressionCodec compressor, byte[] cellBlock) throws java.io.IOException
codec
- cellBlock
- cellBlock
java.io.IOException
public CellScanner createCellScanner(Codec codec, CompressionCodec compressor, java.nio.ByteBuffer cellBlock) throws java.io.IOException
codec
- cellBlock
- ByteBuffer containing the cells written by the Codec. The buffer should be
position()'ed at the start of the cell block and limit()'ed at the end.cellBlock
java.io.IOException
public static java.nio.ByteBuffer getDelimitedMessageAsByteBuffer(Message m) throws java.io.IOException
m
- Message to serialize delimited; i.e. w/ a vint of its size preceeding its
serialization.m
is nulljava.io.IOException
public static int write(java.io.OutputStream dos, Message header, Message param, java.nio.ByteBuffer cellBlock) throws java.io.IOException
dos
- header
- param
- cellBlock
- java.io.IOException
public static void readChunked(java.io.DataInput in, byte[] dest, int offset, int len) throws java.io.IOException
in
- dest
- offset
- len
- java.io.IOException
public static int getTotalSizeWhenWrittenDelimited(Message... messages)