Class BlockBasedFile
java.lang.Object
org.eclipse.jgit.internal.storage.dfs.BlockBasedFile
- Direct Known Subclasses:
DfsPackFile,DfsReftable
Block based file stored in
DfsBlockCache.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static classA supplier of readable channel that opens the channel lazily. -
Field Summary
FieldsModifier and TypeFieldDescription(package private) intPreferred alignment for loading blocks from the backing file.(package private) final DfsBlockCacheCache that owns this file and its data.(package private) final DfsPackDescriptionDescription of the associated pack file's storage.(package private) final PackExt(package private) booleanTrue once corruption has been detected that cannot be worked around.protected ExceptionException that caused the packfile to be flagged as invalid(package private) final DfsStreamKeyUnique identity of this file while in-memory.(package private) longTotal number of bytes in this pack file. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) longalignToBlock(long pos) (package private) int(package private) static longelapsedMicros(long start) (package private) String(package private) DfsBlockgetOrLoadBlock(long pos, DfsReader ctx) (package private) booleaninvalid()(package private) static intread(ReadableChannel rc, ByteBuffer buf) (package private) DfsBlockreadOneBlock(long pos, DfsReader ctx, ReadableChannel rc) (package private) voidsetBlockSize(int newSize) (package private) void
-
Field Details
-
cache
Cache that owns this file and its data. -
key
Unique identity of this file while in-memory. -
desc
Description of the associated pack file's storage. -
ext
-
blockSize
volatile int blockSizePreferred alignment for loading blocks from the backing file.It is initialized to 0 and filled in on the first read made from the file. Block sizes may be odd, e.g. 4091, caused by the underling DFS storing 4091 user bytes and 5 bytes block metadata into a lower level 4096 byte block on disk.
-
length
volatile long lengthTotal number of bytes in this pack file.This field initializes to -1 and gets populated when a block is loaded.
-
invalid
volatile boolean invalidTrue once corruption has been detected that cannot be worked around. -
invalidatingCause
Exception that caused the packfile to be flagged as invalid
-
-
Constructor Details
-
BlockBasedFile
BlockBasedFile(DfsBlockCache cache, DfsPackDescription desc, PackExt ext)
-
-
Method Details
-
getFileName
String getFileName() -
invalid
boolean invalid() -
setInvalid
void setInvalid() -
setBlockSize
void setBlockSize(int newSize) -
alignToBlock
long alignToBlock(long pos) -
blockSize
-
getOrLoadBlock
- Throws:
IOException
-
readOneBlock
- Throws:
IOException
-
read
- Throws:
IOException
-
elapsedMicros
static long elapsedMicros(long start)
-