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.OutputStream
Wrapper 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 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 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) 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)
-
-
-
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:
write
in classjava.io.OutputStream
-
write
public void write(byte[] b, int off, int cnt)
- Overrides:
write
in 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
-
-