/** * $Id: DataVersion.java 1831 2013-05-16 01:39:51Z shijia.wxr $ */ package com.alibaba.rocketmq.common; import java.util.concurrent.atomic.AtomicLong; /** * ������ʶ���ݵİ汾�� * * @author vintage.wang@gmail.com shijia.wxr@taobao.com * */ public class DataVersion { private long timestatmp = System.currentTimeMillis(); private AtomicLong counter = new AtomicLong(0); public String encode() { return this.timestatmp + " " + this.counter.get(); } public static DataVersion decode(final String data) { String[] strs = data.split(" "); DataVersion dv = new DataVersion(); dv.timestatmp = Long.parseLong(strs[0]); dv.counter.set(Long.parseLong(strs[1])); return dv; } public String nextVersion() { this.counter.incrementAndGet(); return this.encode(); } public String currentVersion() { return this.encode(); } @Override public boolean equals(Object obj) { DataVersion dv = (DataVersion) obj; return this.timestatmp == dv.timestatmp && this.counter.get() == dv.counter.get(); } }