Class ReftableOutputStream
- java.lang.Object
-
- java.io.OutputStream
-
- org.eclipse.jgit.internal.storage.reftable.ReftableOutputStream
-
- All Implemented Interfaces:
java.io.Closeable,java.io.Flushable,java.lang.AutoCloseable
class ReftableOutputStream extends java.io.OutputStreamWrapper to assist formatting a reftable to anOutputStream.Internally buffers at block size boundaries, flushing only complete blocks to the
OutputStream.
-
-
Field Summary
Fields Modifier and Type Field Description private booleanalignBlocksprivate byte[]blockBufprivate intblockSizeprivate intblockStartprivate intblockTypeprivate java.util.zip.DeflaterOutputStreamcompressorprivate intcurprivate java.util.zip.Deflaterdeflaterprivate CountingOutputStreamoutprivate longpaddingUsedprivate byte[]tmp
-
Constructor Summary
Constructors Constructor Description ReftableOutputStream(java.io.OutputStream os, int bs, boolean align)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) voidbeginBlock(byte type)(package private) intbytesAvailableInBlock()(package private) intbytesWrittenInBlock()(package private) static intcomputeVarintSize(long val)private voidensureBytesAvailableInBlockBuf(int cnt)(package private) intestimatePadBetweenBlocks(int currentBlockSize)(package private) voidfinishFile()(package private) voidflushBlock()(package private) voidflushFileHeader()(package private) voidpadBetweenBlocksToNextBlock()(package private) longpaddingUsed()(package private) voidsetBlockSize(int bs)(package private) longsize()voidwrite(byte[] b, int off, int cnt)voidwrite(int b)(package private) voidwriteId(ObjectId id)(package private) voidwriteInt16(int val)(package private) voidwriteInt24(int val)(package private) voidwriteVarint(long val)(package private) voidwriteVarintString(byte[] msg)(package private) voidwriteVarintString(java.lang.String s)
-
-
-
Field Detail
-
tmp
private final byte[] tmp
-
out
private final CountingOutputStream out
-
alignBlocks
private final boolean alignBlocks
-
deflater
private java.util.zip.Deflater deflater
-
compressor
private java.util.zip.DeflaterOutputStream compressor
-
blockType
private int blockType
-
blockSize
private int blockSize
-
blockStart
private int blockStart
-
blockBuf
private byte[] blockBuf
-
cur
private int cur
-
paddingUsed
private long paddingUsed
-
-
Method Detail
-
setBlockSize
void setBlockSize(int bs)
-
write
public void write(int b)
- Specified by:
writein classjava.io.OutputStream
-
write
public void write(byte[] b, int off, int cnt)- Overrides:
writein classjava.io.OutputStream
-
bytesWrittenInBlock
int bytesWrittenInBlock()
-
bytesAvailableInBlock
int bytesAvailableInBlock()
-
paddingUsed
long paddingUsed()
-
size
long size()
- Returns:
- bytes flushed; excludes
bytesWrittenInBlock().
-
computeVarintSize
static int computeVarintSize(long val)
-
writeVarint
void writeVarint(long val)
-
writeInt16
void writeInt16(int val)
-
writeInt24
void writeInt24(int val)
-
writeId
void writeId(ObjectId id)
-
writeVarintString
void writeVarintString(java.lang.String s)
-
writeVarintString
void writeVarintString(byte[] msg)
-
ensureBytesAvailableInBlockBuf
private void ensureBytesAvailableInBlockBuf(int cnt)
-
flushFileHeader
void flushFileHeader() throws java.io.IOException- Throws:
java.io.IOException
-
beginBlock
void beginBlock(byte type)
-
flushBlock
void flushBlock() throws java.io.IOException- Throws:
java.io.IOException
-
padBetweenBlocksToNextBlock
void padBetweenBlocksToNextBlock() throws java.io.IOException- Throws:
java.io.IOException
-
estimatePadBetweenBlocks
int estimatePadBetweenBlocks(int currentBlockSize)
-
finishFile
void finishFile() throws java.io.IOException- Throws:
java.io.IOException
-
-