|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.sdnplatform.sync.internal.version.VectorClock
public class VectorClock
A vector of the number of writes mastered by each node. The vector is stored sparely, since, in general, writes will be mastered by only one node. This means implicitly all the versions are at zero, but we only actually store those greater than zero.
Nested Class Summary |
---|
Nested classes/interfaces inherited from interface org.sdnplatform.sync.IVersion |
---|
IVersion.Occurred |
Constructor Summary | |
---|---|
VectorClock()
Construct an empty VectorClock |
|
VectorClock(java.util.List<ClockEntry> versions,
long timestamp)
Create a VectorClock with the given version and timestamp |
|
VectorClock(long timestamp)
|
Method Summary | |
---|---|
VectorClock |
clone()
|
IVersion.Occurred |
compare(IVersion v)
Return whether or not the given version preceeded this one, succeeded it, or is concurrant with it |
static IVersion.Occurred |
compare(VectorClock v1,
VectorClock v2)
Is this Reflexive, AntiSymetic, and Transitive? Compare two VectorClocks, the outcomes will be one of the following: -- Clock 1 is BEFORE clock 2 if there exists an i such that c1(i) <= c(2) and there does not exist a j such that c1(j) > c2(j). |
boolean |
equals(java.lang.Object obj)
|
java.util.List<ClockEntry> |
getEntries()
|
long |
getMaxVersion()
|
long |
getTimestamp()
|
int |
hashCode()
|
VectorClock |
incremented(int nodeId,
long time)
Get new vector clock based on this clock but incremented on index nodeId |
VectorClock |
merge(VectorClock clock)
|
java.lang.String |
toString()
|
Methods inherited from class java.lang.Object |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public VectorClock()
public VectorClock(long timestamp)
public VectorClock(java.util.List<ClockEntry> versions, long timestamp)
versions
- The version to prepopulatetimestamp
- The timestamp to prepopulateMethod Detail |
---|
public VectorClock incremented(int nodeId, long time)
nodeId
- The id of the node to increment
public VectorClock clone()
clone
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
public boolean equals(java.lang.Object obj)
equals
in class java.lang.Object
public java.lang.String toString()
toString
in class java.lang.Object
public long getMaxVersion()
public VectorClock merge(VectorClock clock)
public IVersion.Occurred compare(IVersion v)
IVersion
compare
in interface IVersion
v
- The other versionpublic static IVersion.Occurred compare(VectorClock v1, VectorClock v2)
v1
- The first VectorClockv2
- The second VectorClockpublic long getTimestamp()
public java.util.List<ClockEntry> getEntries()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |