Class BlockSource
- java.lang.Object
-
- org.eclipse.jgit.internal.storage.io.BlockSource
-
- All Implemented Interfaces:
java.lang.AutoCloseable
- Direct Known Subclasses:
DfsReftable.CacheSource
public abstract class BlockSource extends java.lang.Object implements java.lang.AutoCloseableProvides content blocks of file.BlockSourceimplementations must decide if they will be thread-safe, or not.
-
-
Constructor Summary
Constructors Constructor Description BlockSource()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidadviseSequentialRead(long startPos, long endPos)Advise theBlockSourcea sequential scan is starting.abstract voidclose()static BlockSourcefrom(byte[] content)Wrap a byte array as aBlockSource.static BlockSourcefrom(java.io.FileInputStream in)Read from aFileInputStream.static BlockSourcefrom(java.nio.channels.FileChannel ch)Read from aFileChannel.abstract java.nio.ByteBufferread(long position, int blockSize)Read a block from the file.abstract longsize()Determine the size of the file.
-
-
-
Method Detail
-
from
public static BlockSource from(byte[] content)
Wrap a byte array as aBlockSource.- Parameters:
content- input file.- Returns:
- block source to read from
content.
-
from
public static BlockSource from(java.io.FileInputStream in)
Read from aFileInputStream.The returned
BlockSourceis not thread-safe, as it must seek the file channel to read a block.- Parameters:
in- the file. TheBlockSourcewill closein.- Returns:
- wrapper for
in.
-
from
public static BlockSource from(java.nio.channels.FileChannel ch)
Read from aFileChannel.The returned
BlockSourceis not thread-safe, as it must seek the file channel to read a block.- Parameters:
ch- the file. TheBlockSourcewill closech.- Returns:
- wrapper for
ch.
-
read
public abstract java.nio.ByteBuffer read(long position, int blockSize) throws java.io.IOExceptionRead a block from the file.To reduce copying, the returned ByteBuffer should have an accessible array and
arrayOffset() == 0. The caller will discard the ByteBuffer and directly use the backing array.- Parameters:
position- position of the block in the file, specified in bytes from the beginning of the file.blockSize- size to read.- Returns:
- buffer containing the block content.
- Throws:
java.io.IOException- if block cannot be read.
-
size
public abstract long size() throws java.io.IOExceptionDetermine the size of the file.- Returns:
- total number of bytes in the file.
- Throws:
java.io.IOException- if size cannot be obtained.
-
adviseSequentialRead
public void adviseSequentialRead(long startPos, long endPos)Advise theBlockSourcea sequential scan is starting.- Parameters:
startPos- starting position.endPos- ending position.
-
close
public abstract void close()
- Specified by:
closein interfacejava.lang.AutoCloseable
-
-