package fr.upem.udp;

import java.util.concurrent.Delayed;
import java.util.concurrent.TimeUnit;

public class DelayedData implements Delayed {

	private final long date; // temps en nanosecondes de la sortie
	
	
	public DelayedData(long milliDelay) { // delai en millisecondes
		// temps de sortie
        // =
		// temps courant en nanoseconds + 10^6 * delai en millisecondes
		date = milliDelay*1000000+System.nanoTime(); 
	   
	}
	
	@Override
	public int compareTo(Delayed o) {
		if (date < (((DelayedData) o).date))
			return -1;
		else if (date > (((DelayedData) o).date))
			return 1;
		return 0;
	}

	@Override
	public long getDelay(TimeUnit unit) {
		return unit.convert(date-System.nanoTime(),TimeUnit.NANOSECONDS);
	}

}
