public class BinaryDeltaCompressor extends Object implements DeltaCompressor
The delta format is composed of a leading byte that indicates the format; the format indicator byte is one of the FMT_* field values. If the delta value does not begin with one of the FMT_* indicators, then the delta value is itself the new value. If the delta is null, then it indicates no change. The grammar follows:
BinaryDelta: FMT_EMPTY FMT_BINDIFF BinaryChangeList-opt OP_TERM FMT_REPLACE-opt Bytes null BinaryChangeList: OP_EXTRACT Offset Length BinaryChangeList-opt OP_APPEND Length Bytes BinaryChangeList-opt Offset: Length: packed-integer Bytes: byte Bytes-opt
| Modifier and Type | Field and Description | 
|---|---|
| protected static Binary | DELTA_TRUNCATEA delta value that indicates an empty new value. | 
| protected static byte | FMT_BINDIFFA format indicator (the first byte of the binary delta) that indicates that the new value is formed by applying a series of modifications to the old value. | 
| protected static byte | FMT_EMPTYA format indicator (the first byte of the binary delta) that indicates that the new value is a zero-length binary value. | 
| protected static byte | FMT_REPLACEA format indicator (the first byte of the binary delta) that indicates that the new value is found in its entirety in the delta value. | 
| protected static int | MIN_BLOCKMinimum length of an "extract" block to encode. | 
| protected static Binary | NO_BINARYAn empty Binary object. | 
| protected static byte | OP_APPENDA binary delta operator that instructs the  applyDelta(com.tangosol.io.ReadBuffer, com.tangosol.io.ReadBuffer)method to copy the following bytes from the delta value and append them to the new value. | 
| protected static byte | OP_EXTRACTA binary delta operator that instructs the  applyDelta(com.tangosol.io.ReadBuffer, com.tangosol.io.ReadBuffer)method to extract bytes from the old value and append them to the new value. | 
| protected static byte | OP_TERMA binary delta operator that instructs the  applyDelta(com.tangosol.io.ReadBuffer, com.tangosol.io.ReadBuffer)method that the delta has been fully applied. | 
| Constructor and Description | 
|---|
| BinaryDeltaCompressor()Default constructor. | 
| Modifier and Type | Method and Description | 
|---|---|
| ReadBuffer | applyDelta(ReadBuffer bufOld, ReadBuffer bufDelta)Apply a delta to an old value in order to create a new value. | 
| protected ReadBuffer | createDelta(ReadBuffer bufOld, ReadBuffer bufNew)Actually create a delta in the binary delta format. | 
| ReadBuffer | extractDelta(ReadBuffer bufOld, ReadBuffer bufNew)Compare an old value to a new value and generate a delta that represents the changes that must be made to the old value in order to transform it into the new value. | 
protected static final byte FMT_EMPTY
protected static final byte FMT_REPLACE
protected static final byte FMT_BINDIFF
protected static final byte OP_EXTRACT
applyDelta(com.tangosol.io.ReadBuffer, com.tangosol.io.ReadBuffer) method to extract bytes from the old value and append them to the new value. The format is the one-byte OP_EXTRACT indicator followed by a packed int offset and packed int length. The offset and length indicate the region of the old value to extract and append to the new value.protected static final byte OP_APPEND
applyDelta(com.tangosol.io.ReadBuffer, com.tangosol.io.ReadBuffer) method to copy the following bytes from the delta value and append them to the new value. The format is the one-byte OP_APPEND indicator followed by a packed int length and then a series of bytes. The length indicates the length of the series of bytes to copy from the delta value and append to the new value.protected static final byte OP_TERM
applyDelta(com.tangosol.io.ReadBuffer, com.tangosol.io.ReadBuffer) method that the delta has been fully applied.protected static final int MIN_BLOCK
protected static final Binary NO_BINARY
protected static final Binary DELTA_TRUNCATE
public ReadBuffer extractDelta(ReadBuffer bufOld, ReadBuffer bufNew)
If the old value is null, the generated delta must be a "replace", meaning that applying it to any value must produce the specified new value.
extractDelta in interface DeltaCompressorbufOld - the old valuebufNew - the new value; must not be nullpublic ReadBuffer applyDelta(ReadBuffer bufOld, ReadBuffer bufDelta)
applyDelta in interface DeltaCompressorbufOld - the old valuebufDelta - the delta information returned from DeltaCompressor.extractDelta(com.tangosol.io.ReadBuffer, com.tangosol.io.ReadBuffer) to apply to the old valueprotected ReadBuffer createDelta(ReadBuffer bufOld, ReadBuffer bufNew)
bufOld - the old valuebufNew - the new value