boolean append(byte[] data, int off, int len) { if (free() < len) return false; System.arraycopy(data, off, chunkData, ptr, len); ptr += len; return true; }
boolean append(byte[] data, int off, int len) { if (free() < len) return false; System.arraycopy(data, off, chunkData, ptr, len); ptr += len; return true; }
void appendDeflateOutput(Deflater def) { while (!def.finished()) { int left = free(); if (left == 0) return; int n = def.deflate(chunkData, ptr, left); if (n == 0) return; ptr += n; } }
void appendDeflateOutput(Deflater def) { while (!def.finished()) { int left = free(); if (left == 0) return; int n = def.deflate(chunkData, ptr, left); if (n == 0) return; ptr += n; } }
boolean whole(int type, long inflatedSize) { if (free() < 10 || maxObjects <= objectsTotal) return false; header(type, inflatedSize); objectsWhole++; currentObjectType = type; return true; }
boolean whole(int type, long inflatedSize) { if (free() < 10 || maxObjects <= objectsTotal) return false; header(type, inflatedSize); objectsWhole++; currentObjectType = type; return true; }
boolean refDelta(long inflatedSize, AnyObjectId baseId) { if (free() < 30 || maxObjects <= objectsTotal) return false; header(Constants.OBJ_REF_DELTA, inflatedSize); objectsRefDelta++; currentObjectType = Constants.OBJ_REF_DELTA; baseId.copyRawTo(chunkData, ptr); ptr += 20; return true; }
boolean refDelta(long inflatedSize, AnyObjectId baseId) { if (free() < 30 || maxObjects <= objectsTotal) return false; header(Constants.OBJ_REF_DELTA, inflatedSize); objectsRefDelta++; currentObjectType = Constants.OBJ_REF_DELTA; baseId.copyRawTo(chunkData, ptr); ptr += 20; return true; }
private void appendToFragment(byte[] raw, int pos, int len) throws DhtException { while (0 < len) { if (currChunk.free() == 0) { int typeCode = typeOf(currChunkPtr); currChunk.setFragment(); currFragments.add(endChunk(typeCode)); currChunk = openChunk(typeCode); } int n = Math.min(len, currChunk.free()); currChunk.append(raw, pos, n); currPackedSize += n; pos += n; len -= n; } }
private void appendToFragment(byte[] raw, int pos, int len) throws DhtException { while (0 < len) { if (currChunk.free() == 0) { int typeCode = typeOf(currChunkPtr); currChunk.setFragment(); currFragments.add(endChunk(typeCode)); currChunk = openChunk(typeCode); } int n = Math.min(len, currChunk.free()); currChunk.append(raw, pos, n); currPackedSize += n; pos += n; len -= n; } }
boolean ofsDelta(long inflatedSize, long negativeOffset) { final int ofsPtr = encodeVarInt(negativeOffset); final int ofsLen = varIntBuf.length - ofsPtr; if (free() < 10 + ofsLen || maxObjects <= objectsTotal) return false; header(Constants.OBJ_OFS_DELTA, inflatedSize); objectsOfsDelta++; currentObjectType = Constants.OBJ_OFS_DELTA; currentObjectBase = null; if (append(varIntBuf, ofsPtr, ofsLen)) return true; rollback(); return false; }
boolean ofsDelta(long inflatedSize, long negativeOffset) { final int ofsPtr = encodeVarInt(negativeOffset); final int ofsLen = varIntBuf.length - ofsPtr; if (free() < 10 + ofsLen || maxObjects <= objectsTotal) return false; header(Constants.OBJ_OFS_DELTA, inflatedSize); objectsOfsDelta++; currentObjectType = Constants.OBJ_OFS_DELTA; currentObjectBase = null; if (append(varIntBuf, ofsPtr, ofsLen)) return true; rollback(); return false; }