transportedvectortime.java
来自「JGRoups源码」· Java 代码 · 共 167 行
JAVA
167 行
// $Id: TransportedVectorTime.java,v 1.5 2005/08/08 12:45:45 belaban Exp $package org.jgroups.protocols;import org.jgroups.Message;import java.io.Serializable;/** * Lighweight representation of the VectorTime clock suitable for network transport * * @author Vladimir Blagojevic vladimir@cs.yorku.ca * @version $Revision: 1.5 $ */public class TransportedVectorTime implements Serializable{ /** * index of the sender */ int senderPosition; /** * values represented as an array */ int[] values; /** * Message associated with this vector clock */ private transient Message m; private static final long serialVersionUID = 5857647322589533545L; /** * */ public TransportedVectorTime() { } /** * Constructs TransportedVectorTime with sender index and vector values * * @param senderIndex index of the sender of the message * @param values vector values */ public TransportedVectorTime(int senderIndex, int[] values) { this.values = values; this.senderPosition = senderIndex; } /** * Returns sender index * @return sender index position */ public int getSenderIndex() { return senderPosition; } /** * Returns vector values * @return an array of vector values */ public int[] getValues() { return values; } /** * Returns size of this vector timestamp i.e number of process group members * @return vector timestamp size */ public int size() { return values.length; } /** * Sets a message associated with this vector timestamp * @param owner Message that is associated with this vector timestamp */ public void setAssociatedMessage(Message owner) { m = owner; } /** * Returns a message associated with this vector timestamp. * @return Message associated with this vector timestamp */ public Message getAssociatedMessage() { return m; } /** *<p> *Checks if this TransportedVectorTime is less than or equal to the the specified TransportedVectorTime. *The check is done as follows: *</p> * <p> * VT1<=VT2 iff for every i:1..k VT1[i]<=VT2[i] * </p> * @param other TransportedVectorTimebeing compared with this. * @return true if this TransportedVectorTimeis less than or equal from * other, false othwerwise */ public boolean lessThanOrEqual(TransportedVectorTime other) { int[] b = other.getValues(); int[] a = values; for (int k = 0; k < a.length; k++) { if (a[k] <= b[k]) return true; else return false; } return true; } /** * <p> * Checks if this TransportedVectorTimeis equal to the specified TransportedVectorTime. * The check is done as follows: * </p> * <p> * VT1==VT2 iff for every i:1..k VT1[i]==VT2[i] * @param other TransportedVectorTimebeing compared with this. * @return true if the equation given above is true, false otherwise */ public boolean equals(Object other) { int a [] = getValues(); int b [] = ((TransportedVectorTime)other).getValues(); for (int i = 0; i < a.length; i++) if (a[i] != b[i]) return false; return true; } /** * Returns String representation of this vector timestamp * @return String representing this vetor timestamp */ public String toString() { String classType = "TransportedVectorTime["; int bufferLength = classType.length() + values.length * 2 + 1; StringBuffer buf = new StringBuffer(bufferLength); buf.append(classType); for (int i = 0; i < values.length - 1; i++) { buf.append(values[i]).append(','); } buf.append(values[values.length - 1]); buf.append(']'); return buf.toString(); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?