- java.lang.Object
-
- org.eclipse.jgit.internal.storage.io.BlockSource
-
- All Implemented Interfaces:
AutoCloseable
public abstract class BlockSource extends Object implements AutoCloseable
Provides 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(FileInputStream in)Read from aFileInputStream.static BlockSourcefrom(FileChannel ch)Read from aFileChannel.abstract 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(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(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 ByteBuffer read(long position, int blockSize) throws IOException
Read 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:
IOException- if block cannot be read.
-
size
public abstract long size() throws IOExceptionDetermine the size of the file.- Returns:
- total number of bytes in the file.
- Throws:
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 interfaceAutoCloseable
-
-