org.eclipse.jgit.storage.pack
Class DeltaEncoder

java.lang.Object
  extended by org.eclipse.jgit.storage.pack.DeltaEncoder

public class DeltaEncoder
extends Object

Encodes an instruction stream for BinaryDelta.


Constructor Summary
DeltaEncoder(OutputStream out, long baseSize, long resultSize)
          Create an encoder with no upper bound on the instruction stream size.
DeltaEncoder(OutputStream out, long baseSize, long resultSize, int limit)
          Create an encoder with an upper limit on the instruction size.
 
Method Summary
 boolean copy(long offset, int cnt)
          Create a copy instruction to copy from the base object.
 int getSize()
           
 boolean insert(byte[] text)
          Insert a literal binary sequence.
 boolean insert(byte[] text, int off, int cnt)
          Insert a literal binary sequence.
 boolean insert(String text)
          Insert a literal string of text, in UTF-8 encoding.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DeltaEncoder

public DeltaEncoder(OutputStream out,
                    long baseSize,
                    long resultSize)
             throws IOException
Create an encoder with no upper bound on the instruction stream size.

Parameters:
out - buffer to store the instructions written.
baseSize - size of the base object, in bytes.
resultSize - size of the resulting object, after applying this instruction stream to the base object, in bytes.
Throws:
IOException - the output buffer cannot store the instruction stream's header with the size fields.

DeltaEncoder

public DeltaEncoder(OutputStream out,
                    long baseSize,
                    long resultSize,
                    int limit)
             throws IOException
Create an encoder with an upper limit on the instruction size.

Parameters:
out - buffer to store the instructions written.
baseSize - size of the base object, in bytes.
resultSize - size of the resulting object, after applying this instruction stream to the base object, in bytes.
limit - maximum number of bytes to write to the out buffer declaring the stream is over limit and should be discarded. May be 0 to specify an infinite limit.
Throws:
IOException - the output buffer cannot store the instruction stream's header with the size fields.
Method Detail

getSize

public int getSize()
Returns:
current size of the delta stream, in bytes.

insert

public boolean insert(String text)
               throws IOException
Insert a literal string of text, in UTF-8 encoding.

Parameters:
text - the string to insert.
Returns:
true if the insert fits within the limit; false if the insert would cause the instruction stream to exceed the limit.
Throws:
IOException - the instruction buffer can't store the instructions.

insert

public boolean insert(byte[] text)
               throws IOException
Insert a literal binary sequence.

Parameters:
text - the binary to insert.
Returns:
true if the insert fits within the limit; false if the insert would cause the instruction stream to exceed the limit.
Throws:
IOException - the instruction buffer can't store the instructions.

insert

public boolean insert(byte[] text,
                      int off,
                      int cnt)
               throws IOException
Insert a literal binary sequence.

Parameters:
text - the binary to insert.
off - offset within text to start copying from.
cnt - number of bytes to insert.
Returns:
true if the insert fits within the limit; false if the insert would cause the instruction stream to exceed the limit.
Throws:
IOException - the instruction buffer can't store the instructions.

copy

public boolean copy(long offset,
                    int cnt)
             throws IOException
Create a copy instruction to copy from the base object.

Parameters:
offset - position in the base object to copy from. This is absolute, from the beginning of the base.
cnt - number of bytes to copy.
Returns:
true if the copy fits within the limit; false if the copy would cause the instruction stream to exceed the limit.
Throws:
IOException - the instruction buffer cannot store the instructions.


Copyright © 2013. All Rights Reserved.