Package org.apache.catalina.tribes.tipis
Interface ReplicatedMapEntry
-
- All Superinterfaces:
java.io.Serializable
- All Known Implementing Classes:
DeltaSession
public interface ReplicatedMapEntry extends java.io.Serializable
For smarter replication, an object can implement this interface to replicate diffs
The replication logic will call the methods in the following order:
1. if ( entry.isDirty() )
try { 2. entry.lock();
3. byte[] diff = entry.getDiff();
4. entry.reset();
} finally {
5. entry.unlock();
}
}
When the data is deserialized the logic is called in the following order
1. ReplicatedMapEntry entry = (ReplicatedMapEntry)objectIn.readObject();
2. if ( isBackup(entry)||isPrimary(entry) ) entry.setOwner(owner);
- Version:
- 1.0
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
accessEntry()
Access to an existing object.void
applyDiff(byte[] diff, int offset, int length)
Applies a diff to an existing object.byte[]
getDiff()
Returns a diff and sets the dirty map to falselong
getLastTimeReplicated()
long
getVersion()
For accuracy checking, a serialized attribute can contain a version number This number increases as modifications are made to the data.boolean
isAccessReplicate()
If this returns true, to replicate that an object has been accessedboolean
isDiffable()
If this returns true, the map will extract the diff using getDiff() Otherwise it will serialize the entire object.boolean
isDirty()
Has the object changed since last replication and is not in a locked statevoid
lock()
Lock during serializationvoid
resetDiff()
Resets the current diff state and resets the dirty flagvoid
setLastTimeReplicated(long lastTimeReplicated)
Set the last replicate time.void
setOwner(java.lang.Object owner)
This method is called after the object has been created on a remote map.void
setVersion(long version)
Forces a certain version to a replicated map entryvoid
unlock()
Unlock after serialization
-
-
-
Method Detail
-
isDirty
boolean isDirty()
Has the object changed since last replication and is not in a locked state- Returns:
- boolean
-
isDiffable
boolean isDiffable()
If this returns true, the map will extract the diff using getDiff() Otherwise it will serialize the entire object.- Returns:
- boolean
-
getDiff
byte[] getDiff() throws java.io.IOException
Returns a diff and sets the dirty map to false- Returns:
- Serialized diff data
- Throws:
java.io.IOException
- IO error serializing
-
applyDiff
void applyDiff(byte[] diff, int offset, int length) throws java.io.IOException, java.lang.ClassNotFoundException
Applies a diff to an existing object.- Parameters:
diff
- Serialized diff dataoffset
- Array offsetlength
- Array length- Throws:
java.io.IOException
- IO error deserializingjava.lang.ClassNotFoundException
- Serialization error
-
resetDiff
void resetDiff()
Resets the current diff state and resets the dirty flag
-
lock
void lock()
Lock during serialization
-
unlock
void unlock()
Unlock after serialization
-
setOwner
void setOwner(java.lang.Object owner)
This method is called after the object has been created on a remote map. On this method, the object can initialize itself for any data that wasn't- Parameters:
owner
- Object
-
getVersion
long getVersion()
For accuracy checking, a serialized attribute can contain a version number This number increases as modifications are made to the data. The replicated map can use this to ensure accuracy on a periodic basis- Returns:
- long - the version number or -1 if the data is not versioned
-
setVersion
void setVersion(long version)
Forces a certain version to a replicated map entry- Parameters:
version
- long
-
getLastTimeReplicated
long getLastTimeReplicated()
- Returns:
- the last replicate time.
-
setLastTimeReplicated
void setLastTimeReplicated(long lastTimeReplicated)
Set the last replicate time.- Parameters:
lastTimeReplicated
- New timestamp
-
isAccessReplicate
boolean isAccessReplicate()
If this returns true, to replicate that an object has been accessed- Returns:
- boolean
-
accessEntry
void accessEntry()
Access to an existing object.
-
-