org.jgroups.protocols
Class VectorTime

java.lang.Object
  extended by org.jgroups.protocols.VectorTime

public class VectorTime
extends java.lang.Object

Vector timestamp used in CAUSAL order protocol stack

Version:
$Revision: 1.5 $
Author:
Vladimir Blagojevic vladimir@cs.yorku.ca

Constructor Summary
VectorTime(Address owner)
          Constructs VectorTime given an adress of a owning group member
 
Method Summary
 java.util.Collection getMembers()
          Returns Collection containing addresses of other group members from this Vector clock
 int getOwnerIndex()
          Returns owner index in this VectorTime clock
 TransportedVectorTime getTransportedVectorTime()
          Returns a minimal lightweight representation of this Vector Time suitable for network transport.
 int[] getValues()
          Returns Vector clock values of this Vector clock
 java.util.Collection getVectorValues()
          Returns Vector clock values of this Vector clock
 void increment()
          Incerements owners current vector value by 1
 int indexOf(Address member)
          Returns index of the given member represented by it's Address
 boolean isCausallyNext(TransportedVectorTime other)
          Determines if the vector clock represented by TransportedVectorTime is causally next to this VectorTime
 void max(TransportedVectorTime other)
           Maxes this VectorTime with the specified TransportedVectorTime.
 void merge(java.util.Vector newMembers)
          Merges this VectorTime with new members of the group VectorTime can possibly either grow or shrink
 void reset()
          Resets all the values in this vector clock to 0
 java.lang.String toString()
          return String representation of the VectorTime
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

VectorTime

public VectorTime(Address owner)
Constructs VectorTime given an adress of a owning group member

Parameters:
owner - Address of the owner group member
Method Detail

getMembers

public java.util.Collection getMembers()
Returns Collection containing addresses of other group members from this Vector clock

Returns:
Addresses of other group members

getVectorValues

public java.util.Collection getVectorValues()
Returns Vector clock values of this Vector clock

Returns:
values of the Vector clock

getValues

public int[] getValues()
Returns Vector clock values of this Vector clock

Returns:
values of the Vector clock as an array

increment

public void increment()
Incerements owners current vector value by 1


reset

public void reset()
Resets all the values in this vector clock to 0


getTransportedVectorTime

public TransportedVectorTime getTransportedVectorTime()
Returns a minimal lightweight representation of this Vector Time suitable for network transport.

Returns:
lightweight representation of this VectorTime in the form of TransportedVectorTime object

max

public void max(TransportedVectorTime other)

Maxes this VectorTime with the specified TransportedVectorTime. Updates this VectorTime as follows:

for every k:1...n VT(pj)[k] == max(VT(mi)[k],VT(pj)[k])

Parameters:
other - TransportedVectorTime that is max-ed with this VectorTime

isCausallyNext

public boolean isCausallyNext(TransportedVectorTime other)
Determines if the vector clock represented by TransportedVectorTime is causally next to this VectorTime

Parameters:
other - TransportedVectorTime representation of vector clock
Returns:
true if the given TransportedVectorTime is the next causal to this VectorTime

getOwnerIndex

public int getOwnerIndex()
Returns owner index in this VectorTime clock

Returns:
index of the owner of this VectorTime or -1 if not found

indexOf

public int indexOf(Address member)
Returns index of the given member represented by it's Address

Parameters:
member - group member represented by this Address
Returns:
index of the group member or -1 if not found

merge

public void merge(java.util.Vector newMembers)
Merges this VectorTime with new members of the group VectorTime can possibly either grow or shrink

Parameters:
newMembers - members of this group

toString

public java.lang.String toString()
return String representation of the VectorTime

Overrides:
toString in class java.lang.Object
Returns:
String representation of this VectorTime object


Copyright ? 1998-2005 Bela Ban. All Rights Reserved.