Apache Tomcat 6.0.43

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
Author:
Filip Hanik

Method Summary
 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 false
 long getVersion()
          For accuracy checking, a serialized attribute can contain a version number This number increases as modifications are made to the data.
 boolean 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 state
 void lock()
          Lock during serialization
 void resetDiff()
          Resets the current diff state and resets the dirty flag
 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 entry
 void 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:
byte[]
Throws:
java.io.IOException

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 - byte[]
offset - int
length - int
Throws:
java.io.IOException
java.lang.ClassNotFoundException

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

Apache Tomcat 6.0.43

Copyright © 2000-2014 Apache Software Foundation. All Rights Reserved.