| Modifier and Type | Class and Description |
|---|---|
| pack-priv static class |
| Modifier and Type | Field and Description |
|---|---|
| private int | |
| private final ReadableChannel | |
| private final Set | |
| private final CRC32 | |
| private long | |
| private long |
| Access | Constructor and Description |
|---|---|
| public | FsckPackParser(ObjectDatabase
the object database which stores repository's data. db, ReadableChannel readable channel of the pack file. channel)Constructor for FsckPackParser |
| Modifier and Type | Method and Description |
|---|---|
| protected boolean | checkCRC(int
the prior CRC that was recorded during the first scan of the
object from the pack stream. oldCRC)Implements abstract org. Check the current CRC matches the expected value. |
| public Set | Returns: corrupt objects that are reported byorg..Get corrupt objects reported by
|
| protected boolean | onAppendBase(int
type of the base object. typeCode, byte[] complete content of the base object. data, PackedObjectInfo packed object information for this base. Implementors must
populate the CRC and offset members if returning true. info)Implements abstract org. Provide the implementation with a base that was outside of the pack. |
| protected void | onBeginOfsDelta(long
position of this object in the incoming stream. deltaStreamPosition, long position of the base object in the incoming stream. The base
must be before the delta, therefore baseStreamPosition, long baseStreamPosition
< deltaStreamPosition. This is not the position
returned by a prior end object event.size of the delta when fully inflated. The size stored within
the pack may be larger or smaller, and is not yet known. inflatedSize)Implements abstract org. Event notifying start of a delta referencing its base by offset. |
| protected void | onBeginRefDelta(long
position of this object in the incoming stream. deltaStreamPosition, AnyObjectId name of the base object. This object may be later in the
stream, or might not appear at all in the stream (in the case
of a thin-pack). baseId, long size of the delta when fully inflated. The size stored within
the pack may be larger or smaller, and is not yet known. inflatedSize)Implements abstract org. Event notifying start of a delta referencing its base by ObjectId. |
| protected void | onBeginWholeObject(long
position of this object in the incoming stream. streamPosition, int type, long size of the object when fully inflated. The size stored within
the pack may be larger or smaller, and is not yet known. inflatedSize)Implements abstract org. Event notifying the start of an object stored whole (not as a delta). |
| protected PackParser. | onEndDelta()
Overrides org. Event notifying the current object. |
| protected void | onEndThinPack()
Implements abstract org. Event indicating a thin pack has been completely processed. |
| protected void | onEndWholeObject(PackedObjectInfo
object information. info)Implements abstract org. Event notifying the current object. |
| protected void | onInflatedObjectData(PackedObjectInfo
the object info, populated. obj, int the type of the object. typeCode, byte[] inflated data for the object. data)Implements abstract org. Invoked for commits, trees, tags, and small blobs. |
| protected void | onObjectData(PackParser.
where the data came from src,buffer to read data from. raw, int first offset within buffer that is valid. pos, int number of bytes in buffer that are valid. len)Implements abstract org. Store (and/or checksum) a portion of an object's data. |
| protected void | onObjectHeader(PackParser.
where the data came from src,buffer to read data from. raw, int first offset within buffer that is valid. pos, int number of bytes in buffer that are valid. len)Implements abstract org. Store (and/or checksum) an object header. |
| protected void | onPackFooter(byte[]
the trailing 20 bytes of the pack, this is a SHA-1 checksum of
all of the pack data. hash)Implements abstract org. Provide the implementation with the original stream's pack footer. |
| protected void | onPackHeader(long
number of objects expected in the stream. objCnt)Implements abstract org. Provide the implementation with the original stream's pack header. |
| protected void | onStoreStream(byte[]
buffer to copy data out of. raw, int first offset within the buffer that is valid. pos, int number of bytes in the buffer that are valid. len)Implements abstract org. Store bytes received from the raw stream. |
| public void | overwriteObjectCount(long
the actual expected object count. objectCount)Set the object count for overwriting the expected object count from pack header. |
| pack-priv int | |
| protected int | readDatabase(byte[]
the buffer to copy read data into. dst, int position within pos, int dst to start copying data into.ideal target number of bytes to read. Actual read length may
be shorter. cnt)Implements abstract org. Read from the database's current position into the buffer. |
| private byte[] | |
| protected PackParser. | seekDatabase(PackedObjectInfo
the object position to begin reading from. This is from
obj, PackParser.newInfo(AnyObjectId, UnresolvedDelta, ObjectId).object to populate with type and size. infoImplements abstract org. Reposition the database to re-read a previously stored object. |
| protected PackParser. | seekDatabase(PackParser.
the object position to begin reading from. This is an instance
previously returned by delta,onEndDelta().object to populate with type and size. infoImplements abstract org. Reposition the database to re-read a previously stored object. |
| public void | verifyIndex(PackIndex
index file associate with the pack idx)Verify the existing index file with all objects from the pack. |
| protected void | verifySafeObject(final AnyObjectId
identity of the object to be checked. id, final int the type of the object. type, final byte[] raw content of the object. data)Overrides org. Verify the integrity of the object. |
| blockSize | back to summary |
|---|---|
| private int blockSize | |
| channel | back to summary |
|---|---|
| private final ReadableChannel channel | |
| corruptObjects | back to summary |
|---|---|
| private final Set<FsckError. | |
| crc | back to summary |
|---|---|
| private final CRC32 crc | |
| expectedObjectCount | back to summary |
|---|---|
| private long expectedObjectCount Hides org. | |
| offset | back to summary |
|---|---|
| private long offset | |
| FsckPackParser | back to summary |
|---|---|
| public FsckPackParser(ObjectDatabase db, ReadableChannel channel) Constructor for FsckPackParser
| |
| checkCRC | back to summary |
|---|---|
| protected boolean checkCRC(int oldCRC) Implements abstract org. Doc from org. Check the current CRC matches the expected value. This method is invoked when an object is read back in from the database and its data is used during delta resolution. The CRC is validated after the object has been fully read, allowing the parser to verify there was no silent data corruption. Implementations are free to ignore this check by always returning true if they are performing other data integrity validations at a lower level.
| |
| getCorruptObjects | back to summary |
|---|---|
| public Set Get corrupt objects reported by
| |
| onAppendBase | back to summary |
|---|---|
| protected boolean onAppendBase(int typeCode, byte[] data, PackedObjectInfo info) throws IOException Implements abstract org. Doc from org. Provide the implementation with a base that was outside of the pack. This event only occurs on a thin pack for base objects that were outside of the pack and came from the local repository. Usually an implementation uses this event to compress the base and append it onto the end of the pack, so the pack stays self-contained.
| |
| onBeginOfsDelta | back to summary |
|---|---|
| protected void onBeginOfsDelta(long deltaStreamPosition, long baseStreamPosition, long inflatedSize) throws IOException Implements abstract org. Doc from org. Event notifying start of a delta referencing its base by offset.
| |
| onBeginRefDelta | back to summary |
|---|---|
| protected void onBeginRefDelta(long deltaStreamPosition, AnyObjectId baseId, long inflatedSize) throws IOException Implements abstract org. Doc from org. Event notifying start of a delta referencing its base by ObjectId.
| |
| onBeginWholeObject | back to summary |
|---|---|
| protected void onBeginWholeObject(long streamPosition, int type, long inflatedSize) throws IOException Implements abstract org. Doc from org. Event notifying the start of an object stored whole (not as a delta).
| |
| onEndDelta | back to summary |
|---|---|
| protected PackParser. Overrides org. Doc from org. Event notifying the current object.
| |
| onEndThinPack | back to summary |
|---|---|
| protected void onEndThinPack() throws IOException Implements abstract org. Doc from org. Event indicating a thin pack has been completely processed. This event is invoked only if a thin pack has delta references to objects external from the pack. The event is called after all of those deltas have been resolved.
| |
| onEndWholeObject | back to summary |
|---|---|
| protected void onEndWholeObject(PackedObjectInfo info) throws IOException Implements abstract org. Doc from org. Event notifying the current object.
| |
| onInflatedObjectData | back to summary |
|---|---|
| protected void onInflatedObjectData(PackedObjectInfo obj, int typeCode, byte[] data) throws IOException Implements abstract org. Doc from org. Invoked for commits, trees, tags, and small blobs.
| |
| onObjectData | back to summary |
|---|---|
| protected void onObjectData(PackParser. Implements abstract org. Doc from org. Store (and/or checksum) a portion of an object's data. This method may be invoked multiple times per object, depending on the size of the object, the size of the parser's internal read buffer, and the alignment of the object relative to the read buffer.
Invoked after
| |
| onObjectHeader | back to summary |
|---|---|
| protected void onObjectHeader(PackParser. Implements abstract org. Doc from org. Store (and/or checksum) an object header.
Invoked after any of the
| |
| onPackFooter | back to summary |
|---|---|
| protected void onPackFooter(byte[] hash) throws IOException Implements abstract org. Doc from org. Provide the implementation with the original stream's pack footer.
| |
| onPackHeader | back to summary |
|---|---|
| protected void onPackHeader(long objCnt) throws IOException Implements abstract org. Doc from org. Provide the implementation with the original stream's pack header.
| |
| onStoreStream | back to summary |
|---|---|
| protected void onStoreStream(byte[] raw, int pos, int len) throws IOException Implements abstract org. Doc from org. Store bytes received from the raw stream.
This method is invoked during
The only component of the pack not supplied to this method is the last 20
bytes of the pack that comprise the trailing SHA-1 checksum. Those are
passed to
| |
| overwriteObjectCount | back to summary |
|---|---|
| public void overwriteObjectCount(long objectCount) Set the object count for overwriting the expected object count from pack header.
| |
| read | back to summary |
|---|---|
| pack-priv int read(long channelPosition, byte[] dst, int pos, int cnt) throws IOException | |
| readDatabase | back to summary |
|---|---|
| protected int readDatabase(byte[] dst, int pos, int cnt) throws IOException Implements abstract org. Doc from org. Read from the database's current position into the buffer.
| |
| readFromChannel | back to summary |
|---|---|
| private byte[] readFromChannel(long block) throws IOException | |
| seekDatabase | back to summary |
|---|---|
| protected PackParser. Implements abstract org. Doc from org. Reposition the database to re-read a previously stored object. If the database is computing CRC-32 checksums for object data, it should reset its internal CRC instance during this method call.
| |
| seekDatabase | back to summary |
|---|---|
| protected PackParser. Implements abstract org. Doc from org. Reposition the database to re-read a previously stored object. If the database is computing CRC-32 checksums for object data, it should reset its internal CRC instance during this method call.
| |
| verifyIndex | back to summary |
|---|---|
| public void verifyIndex(PackIndex idx) throws CorruptPackIndexException Verify the existing index file with all objects from the pack.
| |
| verifySafeObject | back to summary |
|---|---|
| protected void verifySafeObject(final AnyObjectId id, final int type, final byte[] data) Overrides org. Doc from org. Verify the integrity of the object.
| |
| Access | Constructor and Description |
|---|---|
| pack-priv |
| ObjFromPack | back to summary |
|---|---|
| pack-priv ObjFromPack(AnyObjectId id) | |