class ReftableOutputStream
extends java.io.OutputStream
OutputStream
.
Internally buffers at block size boundaries, flushing only complete blocks to
the OutputStream
.
Modifier and Type | Field and Description |
---|---|
private boolean |
alignBlocks |
private byte[] |
blockBuf |
private int |
blockSize |
private int |
blockStart |
private int |
blockType |
private java.util.zip.DeflaterOutputStream |
compressor |
private int |
cur |
private java.util.zip.Deflater |
deflater |
private CountingOutputStream |
out |
private long |
paddingUsed |
private byte[] |
tmp |
Constructor and Description |
---|
ReftableOutputStream(java.io.OutputStream os,
int bs,
boolean align) |
Modifier and Type | Method and Description |
---|---|
(package private) void |
beginBlock(byte type) |
(package private) int |
bytesAvailableInBlock() |
(package private) int |
bytesWrittenInBlock() |
(package private) static int |
computeVarintSize(long val) |
private void |
ensureBytesAvailableInBlockBuf(int cnt) |
(package private) int |
estimatePadBetweenBlocks(int currentBlockSize) |
(package private) void |
finishFile() |
(package private) void |
flushBlock() |
(package private) void |
flushFileHeader() |
(package private) void |
padBetweenBlocksToNextBlock() |
(package private) long |
paddingUsed() |
(package private) void |
setBlockSize(int bs) |
(package private) long |
size() |
void |
write(byte[] b,
int off,
int cnt) |
void |
write(int b) |
(package private) void |
writeId(ObjectId id) |
(package private) void |
writeInt16(int val) |
(package private) void |
writeInt24(int val) |
(package private) void |
writeVarint(long val) |
(package private) void |
writeVarintString(byte[] msg) |
(package private) void |
writeVarintString(java.lang.String s) |
private final byte[] tmp
private final CountingOutputStream out
private final boolean alignBlocks
private java.util.zip.Deflater deflater
private java.util.zip.DeflaterOutputStream compressor
private int blockType
private int blockSize
private int blockStart
private byte[] blockBuf
private int cur
private long paddingUsed
ReftableOutputStream(java.io.OutputStream os, int bs, boolean align)
void setBlockSize(int bs)
public void write(int b)
write
in class java.io.OutputStream
public void write(byte[] b, int off, int cnt)
write
in class java.io.OutputStream
int bytesWrittenInBlock()
int bytesAvailableInBlock()
long paddingUsed()
long size()
bytesWrittenInBlock()
.static int computeVarintSize(long val)
void writeVarint(long val)
void writeInt16(int val)
void writeInt24(int val)
void writeId(ObjectId id)
void writeVarintString(java.lang.String s)
void writeVarintString(byte[] msg)
private void ensureBytesAvailableInBlockBuf(int cnt)
void flushFileHeader() throws java.io.IOException
java.io.IOException
void beginBlock(byte type)
void flushBlock() throws java.io.IOException
java.io.IOException
void padBetweenBlocksToNextBlock() throws java.io.IOException
java.io.IOException
int estimatePadBetweenBlocks(int currentBlockSize)
void finishFile() throws java.io.IOException
java.io.IOException