/**
*
*/
package com.teefun.bean.websocket;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
import com.google.common.eventbus.Subscribe;
import com.teefun.events.event.GameAbortedEvent;
import com.teefun.events.event.GameReadyEvent;
import com.teefun.events.event.GameStartedEvent;
import com.teefun.events.event.QueueCreatedEvent;
import com.teefun.events.event.QueueDeletedEvent;
import com.teefun.events.event.QueueModifiedEvent;
import com.teefun.service.websocket.WebSocketHandler;
/**
* Listen to eventbus for event to be sent at websockets.
*
* @author Rajh
*
*/
@Component
public class WebSocketEventTunneler {
/**
* Websocket handler.
*/
@Resource
private WebSocketHandler websocketHandler;
/**
* Listen to {@link QueueModifiedEvent} and sent it through websocket.
*
* @param queueModifiedEvent the event
*/
@Subscribe
public void onQueueModified(final QueueModifiedEvent queueModifiedEvent) {
this.websocketHandler.queueUpdated(queueModifiedEvent.getQueue());
}
/**
* Listen to {@link QueueCreatedEvent} and sent it through websocket.
*
* @param queueCreatedEvent the event
*/
@Subscribe
public void onQueueCreated(final QueueCreatedEvent queueCreatedEvent) {
this.websocketHandler.queueCreated(queueCreatedEvent.getQueue());
}
/**
* Listen to {@link QueueDeletedEvent} and sent it through websocket.
*
* @param queueDeletedEvent the event
*/
@Subscribe
public void onQueueDeleted(final QueueDeletedEvent queueDeletedEvent) {
this.websocketHandler.queueDeleted(queueDeletedEvent.getQueue());
}
/**
* Listen to {@link GameReadyEvent} and sent it through websocket.
*
* @param gameReadyEvent the event
*/
@Subscribe
public void onGameReady(final GameReadyEvent gameReadyEvent) {
this.websocketHandler.gameReady(gameReadyEvent.getQueue());
}
/**
* Listen to {@link gameStartedEvent} and sent it through websocket.
*
* @param gameStartedEvent the event
*/
@Subscribe
public void onGameStarted(final GameStartedEvent gameStartedEvent) {
this.websocketHandler.gameStarted(gameStartedEvent.getQueue());
}
/**
* Listen to {@link GameAbortedEvent} and sent it through websocket.
*
* @param gameAbortedEvent the event
*/
@Subscribe
public void onGameAborted(final GameAbortedEvent gameAbortedEvent) {
this.websocketHandler.gameAborted(gameAbortedEvent.getQueue());
}
}