package se.sics.gvod.ls.video.snapshot; import java.util.HashMap; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; /** * * Singleton for storing information shared across nodes. * * @author Niklas Wahlén <nwahlen@kth.se> */ public class SimulationSingleton { private static SimulationSingleton instance; // For monitoring stream lag private Map<Integer, Long> pieceDisseminationStartTime; // Piece ID, time private SimulationSingleton() { pieceDisseminationStartTime = new ConcurrentHashMap<Integer, Long>(); } public static SimulationSingleton getInstance() { if (instance == null) { instance = new SimulationSingleton(); } return instance; } public boolean register(int pieceId) { if (!pieceDisseminationStartTime.containsKey(pieceId)) { pieceDisseminationStartTime.put(pieceId, System.currentTimeMillis()); return true; } return false; } public Long get(int pieceId) { return pieceDisseminationStartTime.get(pieceId); } }