Package com.tangosol.io.pof
Class PofDeltaCompressor
- java.lang.Object
-
- com.tangosol.io.BinaryDeltaCompressor
-
- com.tangosol.io.pof.PofDeltaCompressor
-
- All Implemented Interfaces:
DeltaCompressor
,PofConstants
public class PofDeltaCompressor extends BinaryDeltaCompressor implements DeltaCompressor, PofConstants
A DeltaCompressor implementation that works with Portable Object Format (POF) values. Note that while the POF parsing is stateful, the PofDeltaCompressor itself is still stateless, deferring all state management to a per-invocation data structure.- Author:
- cp 2009.01.26
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
PofDeltaCompressor.ChangeTracker
When determining a delta between two POF buffers, the ChangeTracker keeps track of whether the current location within the two POF streams is part of a differing portion or part of an identical portion.
-
Field Summary
-
Fields inherited from class com.tangosol.io.BinaryDeltaCompressor
DELTA_TRUNCATE, FMT_BINDIFF, FMT_EMPTY, FMT_REPLACE, MIN_BLOCK, NO_BINARY, OP_APPEND, OP_EXTRACT, OP_TERM
-
Fields inherited from interface com.tangosol.io.pof.PofConstants
J_BIG_DECIMAL, J_BIG_INTEGER, J_BINARY, J_BOOLEAN, J_BOOLEAN_ARRAY, J_BYTE, J_BYTE_ARRAY, J_CHAR_ARRAY, J_CHARACTER, J_COLLECTION, J_DATE, J_DATETIME, J_DOUBLE, J_DOUBLE_ARRAY, J_FLOAT, J_FLOAT_ARRAY, J_INT_ARRAY, J_INTEGER, J_LOCAL_DATE, J_LOCAL_DATETIME, J_LOCAL_TIME, J_LONG, J_LONG_ARRAY, J_MAP, J_NULL, J_OBJECT_ARRAY, J_OFFSET_DATETIME, J_OFFSET_TIME, J_QUAD, J_RAW_DATE, J_RAW_DATETIME, J_RAW_DAY_TIME_INTERVAL, J_RAW_TIME, J_RAW_TIME_INTERVAL, J_RAW_YEAR_MONTH_INTERVAL, J_SHORT, J_SHORT_ARRAY, J_SPARSE_ARRAY, J_STRING, J_TIME, J_TIMESTAMP, J_USER_TYPE, J_ZONED_DATETIME, MAX_DECIMAL128_SCALE, MAX_DECIMAL128_UNSCALED, MAX_DECIMAL32_SCALE, MAX_DECIMAL32_UNSCALED, MAX_DECIMAL64_SCALE, MAX_DECIMAL64_UNSCALED, MIN_DECIMAL128_SCALE, MIN_DECIMAL32_SCALE, MIN_DECIMAL64_SCALE, T_ARRAY, T_BOOLEAN, T_CHAR, T_CHAR_STRING, T_COLLECTION, T_DATE, T_DATETIME, T_DAY_TIME_INTERVAL, T_DECIMAL128, T_DECIMAL32, T_DECIMAL64, T_FLOAT128, T_FLOAT32, T_FLOAT64, T_IDENTITY, T_INT128, T_INT16, T_INT32, T_INT64, T_MAP, T_OCTET, T_OCTET_STRING, T_REFERENCE, T_SPARSE_ARRAY, T_TIME, T_TIME_INTERVAL, T_UNIFORM_ARRAY, T_UNIFORM_COLLECTION, T_UNIFORM_KEYS_MAP, T_UNIFORM_MAP, T_UNIFORM_SPARSE_ARRAY, T_UNKNOWN, T_YEAR_MONTH_INTERVAL, V_BOOLEAN_FALSE, V_BOOLEAN_TRUE, V_COLLECTION_EMPTY, V_FP_NAN, V_FP_NEG_INFINITY, V_FP_POS_INFINITY, V_INT_0, V_INT_1, V_INT_10, V_INT_11, V_INT_12, V_INT_13, V_INT_14, V_INT_15, V_INT_16, V_INT_17, V_INT_18, V_INT_19, V_INT_2, V_INT_20, V_INT_21, V_INT_22, V_INT_3, V_INT_4, V_INT_5, V_INT_6, V_INT_7, V_INT_8, V_INT_9, V_INT_NEG_1, V_REFERENCE_NULL, V_STRING_ZERO_LENGTH
-
-
Constructor Summary
Constructors Constructor Description PofDeltaCompressor()
Default constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ReadBuffer
createDelta(ReadBuffer bufOld, ReadBuffer bufNew)
Actually create a delta in the binary delta format.protected void
diffCollection(ReadBuffer.BufferInput inOld, ReadBuffer.BufferInput inNew, PofDeltaCompressor.ChangeTracker tracker)
Within the two passed POF streams, parse and compare an array or collection.protected void
diffMap(ReadBuffer.BufferInput inOld, ReadBuffer.BufferInput inNew, PofDeltaCompressor.ChangeTracker tracker)
Within the two passed POF streams, parse and compare a Map of keys and values.protected void
diffPackedInt(ReadBuffer.BufferInput inOld, ReadBuffer.BufferInput inNew, PofDeltaCompressor.ChangeTracker tracker)
Within the two passed POF streams, parse and compare a packed integer value.protected void
diffPackedInts(ReadBuffer.BufferInput inOld, ReadBuffer.BufferInput inNew, PofDeltaCompressor.ChangeTracker tracker, int cInts)
Within the two passed POF streams, parse and compare a series of packed integer values.protected void
diffPackedLong(ReadBuffer.BufferInput inOld, ReadBuffer.BufferInput inNew, PofDeltaCompressor.ChangeTracker tracker)
Within the two passed POF streams, parse and compare a packed long integer value.protected void
diffPackedLongs(ReadBuffer.BufferInput inOld, ReadBuffer.BufferInput inNew, PofDeltaCompressor.ChangeTracker tracker, int cInts)
Within the two passed POF streams, parse and compare a series of packed long integer values.protected void
diffSparseArray(ReadBuffer.BufferInput inOld, ReadBuffer.BufferInput inNew, PofDeltaCompressor.ChangeTracker tracker)
Within the two passed POF streams, parse and compare a sparse array.protected void
diffTimeZone(ReadBuffer.BufferInput inOld, ReadBuffer.BufferInput inNew, PofDeltaCompressor.ChangeTracker tracker)
Within the two passed POF streams, parse and compare time zone information.protected void
diffUniformCollection(ReadBuffer.BufferInput inOld, ReadBuffer.BufferInput inNew, PofDeltaCompressor.ChangeTracker tracker)
Within the two passed POF streams, parse and compare an array or collection of uniform types.protected void
diffUniformKeysMap(ReadBuffer.BufferInput inOld, ReadBuffer.BufferInput inNew, PofDeltaCompressor.ChangeTracker tracker)
Within the two passed POF streams, parse and compare a Map of keys (of a uniform type) and values.protected void
diffUniformMap(ReadBuffer.BufferInput inOld, ReadBuffer.BufferInput inNew, PofDeltaCompressor.ChangeTracker tracker)
Within the two passed POF streams, parse and compare a Map of keys and values, both of uniform types.protected void
diffUniformSparseArray(ReadBuffer.BufferInput inOld, ReadBuffer.BufferInput inNew, PofDeltaCompressor.ChangeTracker tracker)
Within the two passed POF streams, parse and compare a sparse array of uniform types.protected void
diffUniformValue(ReadBuffer.BufferInput inOld, ReadBuffer.BufferInput inNew, PofDeltaCompressor.ChangeTracker tracker, int nType)
Within the two passed POF streams, parse and compare a POF value of the specified type.protected void
diffUserType(ReadBuffer.BufferInput inOld, ReadBuffer.BufferInput inNew, PofDeltaCompressor.ChangeTracker tracker)
Within the two passed POF streams, parse and compare a user type value.protected void
diffValue(ReadBuffer.BufferInput inOld, ReadBuffer.BufferInput inNew, PofDeltaCompressor.ChangeTracker tracker)
Within the two passed POF streams, parse and compare a POF value.-
Methods inherited from class com.tangosol.io.BinaryDeltaCompressor
applyDelta, extractDelta
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.tangosol.io.DeltaCompressor
applyDelta, extractDelta
-
-
-
-
Method Detail
-
createDelta
public ReadBuffer createDelta(ReadBuffer bufOld, ReadBuffer bufNew)
Actually create a delta in the binary delta format. This method is designed to be overridden by subclasses that have more intimate knowledge of the contents of the buffers.- Overrides:
createDelta
in classBinaryDeltaCompressor
- Parameters:
bufOld
- the old valuebufNew
- the new value- Returns:
- a delta in the binary delta format
-
diffValue
protected void diffValue(ReadBuffer.BufferInput inOld, ReadBuffer.BufferInput inNew, PofDeltaCompressor.ChangeTracker tracker) throws IOException
Within the two passed POF streams, parse and compare a POF value.- Parameters:
inOld
- the BufferInput to read frominNew
- the BufferInput to read fromtracker
- the ChangeTracker that computes the diff result- Throws:
IOException
- if an I/O error occurs
-
diffUniformValue
protected void diffUniformValue(ReadBuffer.BufferInput inOld, ReadBuffer.BufferInput inNew, PofDeltaCompressor.ChangeTracker tracker, int nType) throws IOException
Within the two passed POF streams, parse and compare a POF value of the specified type.- Parameters:
inOld
- the BufferInput to read frominNew
- the BufferInput to read fromtracker
- the ChangeTracker that computes the diff resultnType
- the type to parse- Throws:
IOException
- if an I/O error occurs
-
diffUserType
protected void diffUserType(ReadBuffer.BufferInput inOld, ReadBuffer.BufferInput inNew, PofDeltaCompressor.ChangeTracker tracker) throws IOException
Within the two passed POF streams, parse and compare a user type value.- Parameters:
inOld
- the BufferInput to read frominNew
- the BufferInput to read fromtracker
- the ChangeTracker that computes the diff result- Throws:
IOException
- if an I/O error occurs
-
diffCollection
protected void diffCollection(ReadBuffer.BufferInput inOld, ReadBuffer.BufferInput inNew, PofDeltaCompressor.ChangeTracker tracker) throws IOException
Within the two passed POF streams, parse and compare an array or collection.- Parameters:
inOld
- the BufferInput to read frominNew
- the BufferInput to read fromtracker
- the ChangeTracker that computes the diff result- Throws:
IOException
- if an I/O error occurs
-
diffUniformCollection
protected void diffUniformCollection(ReadBuffer.BufferInput inOld, ReadBuffer.BufferInput inNew, PofDeltaCompressor.ChangeTracker tracker) throws IOException
Within the two passed POF streams, parse and compare an array or collection of uniform types.- Parameters:
inOld
- the BufferInput to read frominNew
- the BufferInput to read fromtracker
- the ChangeTracker that computes the diff result- Throws:
IOException
- if an I/O error occurs
-
diffSparseArray
protected void diffSparseArray(ReadBuffer.BufferInput inOld, ReadBuffer.BufferInput inNew, PofDeltaCompressor.ChangeTracker tracker) throws IOException
Within the two passed POF streams, parse and compare a sparse array.- Parameters:
inOld
- the BufferInput to read frominNew
- the BufferInput to read fromtracker
- the ChangeTracker that computes the diff result- Throws:
IOException
- if an I/O error occurs
-
diffUniformSparseArray
protected void diffUniformSparseArray(ReadBuffer.BufferInput inOld, ReadBuffer.BufferInput inNew, PofDeltaCompressor.ChangeTracker tracker) throws IOException
Within the two passed POF streams, parse and compare a sparse array of uniform types.- Parameters:
inOld
- the BufferInput to read frominNew
- the BufferInput to read fromtracker
- the ChangeTracker that computes the diff result- Throws:
IOException
- if an I/O error occurs
-
diffMap
protected void diffMap(ReadBuffer.BufferInput inOld, ReadBuffer.BufferInput inNew, PofDeltaCompressor.ChangeTracker tracker) throws IOException
Within the two passed POF streams, parse and compare a Map of keys and values.- Parameters:
inOld
- the BufferInput to read frominNew
- the BufferInput to read fromtracker
- the ChangeTracker that computes the diff result- Throws:
IOException
- if an I/O error occurs
-
diffUniformKeysMap
protected void diffUniformKeysMap(ReadBuffer.BufferInput inOld, ReadBuffer.BufferInput inNew, PofDeltaCompressor.ChangeTracker tracker) throws IOException
Within the two passed POF streams, parse and compare a Map of keys (of a uniform type) and values.- Parameters:
inOld
- the BufferInput to read frominNew
- the BufferInput to read fromtracker
- the ChangeTracker that computes the diff result- Throws:
IOException
- if an I/O error occurs
-
diffUniformMap
protected void diffUniformMap(ReadBuffer.BufferInput inOld, ReadBuffer.BufferInput inNew, PofDeltaCompressor.ChangeTracker tracker) throws IOException
Within the two passed POF streams, parse and compare a Map of keys and values, both of uniform types.- Parameters:
inOld
- the BufferInput to read frominNew
- the BufferInput to read fromtracker
- the ChangeTracker that computes the diff result- Throws:
IOException
- if an I/O error occurs
-
diffTimeZone
protected void diffTimeZone(ReadBuffer.BufferInput inOld, ReadBuffer.BufferInput inNew, PofDeltaCompressor.ChangeTracker tracker) throws IOException
Within the two passed POF streams, parse and compare time zone information.- Parameters:
inOld
- the BufferInput to read frominNew
- the BufferInput to read fromtracker
- the ChangeTracker that computes the diff result- Throws:
IOException
- if an I/O error occurs
-
diffPackedInts
protected void diffPackedInts(ReadBuffer.BufferInput inOld, ReadBuffer.BufferInput inNew, PofDeltaCompressor.ChangeTracker tracker, int cInts) throws IOException
Within the two passed POF streams, parse and compare a series of packed integer values.- Parameters:
inOld
- the BufferInput to read frominNew
- the BufferInput to read fromtracker
- the ChangeTracker that computes the diff resultcInts
- the number of packed integers to parse and compare- Throws:
IOException
- if an I/O error occurs
-
diffPackedInt
protected void diffPackedInt(ReadBuffer.BufferInput inOld, ReadBuffer.BufferInput inNew, PofDeltaCompressor.ChangeTracker tracker) throws IOException
Within the two passed POF streams, parse and compare a packed integer value.- Parameters:
inOld
- the BufferInput to read frominNew
- the BufferInput to read fromtracker
- the ChangeTracker that computes the diff result- Throws:
IOException
- if an I/O error occurs
-
diffPackedLongs
protected void diffPackedLongs(ReadBuffer.BufferInput inOld, ReadBuffer.BufferInput inNew, PofDeltaCompressor.ChangeTracker tracker, int cInts) throws IOException
Within the two passed POF streams, parse and compare a series of packed long integer values.- Parameters:
inOld
- the BufferInput to read frominNew
- the BufferInput to read fromtracker
- the ChangeTracker that computes the diff resultcInts
- the number of packed long integers to parse and compare- Throws:
IOException
- if an I/O error occurs
-
diffPackedLong
protected void diffPackedLong(ReadBuffer.BufferInput inOld, ReadBuffer.BufferInput inNew, PofDeltaCompressor.ChangeTracker tracker) throws IOException
Within the two passed POF streams, parse and compare a packed long integer value.- Parameters:
inOld
- the BufferInput to read frominNew
- the BufferInput to read fromtracker
- the ChangeTracker that computes the diff result- Throws:
IOException
- if an I/O error occurs
-
-