org.jgroups.protocols

Class VectorTime

public class VectorTime extends 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
CollectiongetMembers()
Returns Collection containing addresses of other group members from this Vector clock
intgetOwnerIndex()
Returns owner index in this VectorTime clock
TransportedVectorTimegetTransportedVectorTime()
Returns a minimal lightweight representation of this Vector Time suitable for network transport.
int[]getValues()
Returns Vector clock values of this Vector clock
CollectiongetVectorValues()
Returns Vector clock values of this Vector clock
voidincrement()
Incerements owners current vector value by 1
intindexOf(Address member)
Returns index of the given member represented by it's Address
booleanisCausallyNext(TransportedVectorTime other)
Determines if the vector clock represented by TransportedVectorTime is causally next to this VectorTime
voidmax(TransportedVectorTime other)

Maxes this VectorTime with the specified TransportedVectorTime.

voidmerge(Vector newMembers)
Merges this VectorTime with new members of the group VectorTime can possibly either grow or shrink
voidreset()
Resets all the values in this vector clock to 0
StringtoString()
return String representation of the VectorTime

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 Collection getMembers()
Returns Collection containing addresses of other group members from this Vector clock

Returns: Addresses of other group members

getOwnerIndex

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

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

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

getValues

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

Returns: values of the Vector clock as an array

getVectorValues

public Collection getVectorValues()
Returns Vector clock values of this Vector clock

Returns: values of the Vector clock

increment

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

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

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

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

merge

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

Parameters: newMembers members of this group

reset

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

toString

public String toString()
return String representation of the VectorTime

Returns: String representation of this VectorTime object

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