package org.knowm.xchange.utils.nonce; import java.util.concurrent.atomic.AtomicLong; import si.mazi.rescu.SynchronizedValueFactory; public class AtomicLongIncrementalTime2014NonceFactory implements SynchronizedValueFactory<Long> { private static final long START_MILLIS = 1388534400000L; // Jan 1st, 2014 in milliseconds from epoch //counter for the nonce private final AtomicLong lastNonce = new AtomicLong((System.currentTimeMillis() - START_MILLIS) / 250L); @Override public Long createValue() { return lastNonce.incrementAndGet(); } }