package net.socialgamer.cah.task; import java.util.HashMap; import net.socialgamer.cah.Constants.LongPollEvent; import net.socialgamer.cah.Constants.LongPollResponse; import net.socialgamer.cah.Constants.ReturnableData; import net.socialgamer.cah.data.ConnectedUsers; import net.socialgamer.cah.data.QueuedMessage.MessageType; import com.google.inject.Inject; import com.google.inject.Singleton; @Singleton public class BroadcastGameListUpdateTask extends SafeTimerTask { private volatile boolean needsUpdate = false; private final ConnectedUsers users; @Inject public BroadcastGameListUpdateTask(final ConnectedUsers users) { this.users = users; } public void needsUpdate() { needsUpdate = true; } @Override public void process() { if (needsUpdate) { final HashMap<ReturnableData, Object> broadcastData = new HashMap<ReturnableData, Object>(); broadcastData.put(LongPollResponse.EVENT, LongPollEvent.GAME_LIST_REFRESH.toString()); users.broadcastToAll(MessageType.GAME_EVENT, broadcastData); needsUpdate = false; } } }