refactor: deleted MessageRelay class
This commit is contained in:
parent
cc45c821b7
commit
a6ecf6fa30
@ -1,70 +0,0 @@
|
|||||||
package uulm.teamname.marvelous.server.lobbymanager;
|
|
||||||
|
|
||||||
import org.java_websocket.WebSocket;
|
|
||||||
import org.tinylog.Logger;
|
|
||||||
import uulm.teamname.marvelous.gamelibrary.Tuple;
|
|
||||||
import uulm.teamname.marvelous.gamelibrary.events.Event;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.concurrent.BlockingQueue;
|
|
||||||
import java.util.concurrent.LinkedBlockingQueue;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Relay for the messages field. It basically relays {@link Event} Events and
|
|
||||||
* {@link uulm.teamname.marvelous.gamelibrary.requests.Request} Requests to
|
|
||||||
* the participants or lobbies that they are supposed to be sent to.
|
|
||||||
*/
|
|
||||||
public class MessageRelay {
|
|
||||||
|
|
||||||
public static MessageRelay instance;
|
|
||||||
|
|
||||||
|
|
||||||
private final BlockingQueue<Tuple<Participant, Event[]>> eventsToSend;
|
|
||||||
|
|
||||||
private MessageRelay() {
|
|
||||||
this.eventsToSend = new LinkedBlockingQueue<>();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static MessageRelay getInstance() {
|
|
||||||
if (instance == null) {
|
|
||||||
instance = new MessageRelay();
|
|
||||||
}
|
|
||||||
return instance;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void relayMessage (WebSocket conn, LobbyConnection targetLobby) {
|
|
||||||
// TODO: Parse JSON
|
|
||||||
// TODO: send to target lobby
|
|
||||||
}
|
|
||||||
|
|
||||||
public void sendMessage (LobbyConnection origin, Participant recipient, Event[] events) {
|
|
||||||
if (!origin.contains(recipient)) {
|
|
||||||
Logger.warn("Lobby sent message to not-in-lobby recipient '{}'", recipient.name);
|
|
||||||
} else {
|
|
||||||
eventsToSend.add(Tuple.of(recipient, events));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Broadcasts events to all {@link Participant Participants} of a {@link LobbyConnection}.
|
|
||||||
* @param origin is the {@link LobbyConnection} that the {@link Event Events} are broadcasted from
|
|
||||||
* @param events are the {@link Event Events} to be broadcasted
|
|
||||||
*/
|
|
||||||
public void broadcastEvents (LobbyConnection origin, Event[] events) {
|
|
||||||
eventsToSend.add(Tuple.of(origin.getPlayer1(), events));
|
|
||||||
eventsToSend.add(Tuple.of(origin.getPlayer2(), events));
|
|
||||||
origin.getSpectators()
|
|
||||||
.forEach(spectator -> eventsToSend.add(Tuple.of(spectator, events)));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Terminates a given {@link LobbyConnection}. This is a End-of-Lifecycle method for
|
|
||||||
* {@link LobbyConnection LobbyConnections}, and they may not be reused again.
|
|
||||||
* @param origin is the LobbyConnection to be terminated
|
|
||||||
*/
|
|
||||||
public void terminate (LobbyConnection origin) {
|
|
||||||
// TODO: implement
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user