summaryrefslogtreecommitdiffstats
path: root/src/jrummikub/control/network/ConnectionControl.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/jrummikub/control/network/ConnectionControl.java')
-rw-r--r--src/jrummikub/control/network/ConnectionControl.java90
1 files changed, 55 insertions, 35 deletions
diff --git a/src/jrummikub/control/network/ConnectionControl.java b/src/jrummikub/control/network/ConnectionControl.java
index 57e0cc6..ca8537d 100644
--- a/src/jrummikub/control/network/ConnectionControl.java
+++ b/src/jrummikub/control/network/ConnectionControl.java
@@ -32,7 +32,7 @@ import org.jivesoftware.smack.util.Base64;
import org.jivesoftware.smackx.muc.DiscussionHistory;
import org.jivesoftware.smackx.muc.MultiUserChat;
-class ConnectionControl {
+class ConnectionControl implements IConnectionControl {
private final static String ELEMENT_NAME = "rummikub";
private final static String NAMESPACE = "http://home.universe-factory.net/rummikub/";
@@ -61,15 +61,18 @@ class ConnectionControl {
this.loginData = loginData;
}
- String getNickname() {
+ @Override
+ public String getNickname() {
return muc.getNickname();
}
- void connect() {
+ @Override
+ public void connect() {
new Thread(new ConnectRunner()).start();
}
- void disconnect() {
+ @Override
+ public void disconnect() {
connectedEvent = new Event();
connectionFailedEvent = new Event();
new Thread(new Runnable() {
@@ -85,45 +88,55 @@ class ConnectionControl {
}).start();
}
- IEvent getConnectedEvent() {
+ @Override
+ public IEvent getConnectedEvent() {
return connectedEvent;
}
- IEvent getConnectionFailedEvent() {
+ @Override
+ public IEvent getConnectionFailedEvent() {
return connectionFailedEvent;
}
- IEvent1<GameData> getGameOfferEvent() {
+ @Override
+ public IEvent1<GameData> getGameOfferEvent() {
return gameOfferEvent;
}
- IEvent1<UUID> getGameWithdrawalEvent() {
+ @Override
+ public IEvent1<UUID> getGameWithdrawalEvent() {
return gameWithdrawalEvent;
}
- IEvent1<String> getGameJoinEvent() {
+ @Override
+ public IEvent1<String> getGameJoinEvent() {
return gameJoinEvent;
}
- IEvent1<String> getGameLeaveEvent() {
+ @Override
+ public IEvent1<String> getGameLeaveEvent() {
return gameLeaveEvent;
}
- IEvent1<Boolean> getGameJoinAckEvent() {
+ @Override
+ public IEvent1<Boolean> getGameJoinAckEvent() {
return gameJoinAckEvent;
}
- IEvent2<String, Color> getChangeColorEvent() {
+ @Override
+ public IEvent2<String, Color> getChangeColorEvent() {
return changeColorEvent;
}
- void offerGame(GameData data) {
+ @Override
+ public void offerGame(GameData data) {
offeredGame = data;
currentGame = data;
sendGameOffer();
}
- void withdrawGame() {
+ @Override
+ public void withdrawGame() {
offeredGame = null;
final UUID uuid = currentGame.getGameID();
currentGame = null;
@@ -131,65 +144,70 @@ class ConnectionControl {
@Override
public Message send() {
DefaultPacketExtension extension = createJRummikubExtension();
-
+
extension.setValue("messageType", "game_withdrawal");
extension.setValue("uuid", uuid.toString());
-
+
return createMessage(extension);
}
}).start();
}
- GameData getCurrentGame() {
+ @Override
+ public GameData getCurrentGame() {
return currentGame;
}
- void setCurrentGame(GameData game) {
+ @Override
+ public void setCurrentGame(GameData game) {
this.currentGame = game;
}
- void joinGame(final GameData game) {
+ @Override
+ public void joinGame(final GameData game) {
setCurrentGame(game);
new Thread(new SendRunner() {
@Override
public Message send() {
DefaultPacketExtension extension = createJRummikubExtension();
-
+
extension.setValue("messageType", "game_join");
extension.setValue("uuid", game.getGameID().toString());
-
+
return createMessage(extension);
}
}).start();
}
- void leaveGame() {
+ @Override
+ public void leaveGame() {
final UUID uuid = currentGame.getGameID();
currentGame = null;
new Thread(new SendRunner() {
@Override
public Message send() {
DefaultPacketExtension extension = createJRummikubExtension();
-
+
extension.setValue("messageType", "game_leave");
extension.setValue("uuid", uuid.toString());
-
+
return createMessage(extension);
}
}).start();
}
- void ackJoinGame(final String recipient, final boolean ack) {
+ @Override
+ public void ackJoinGame(final String recipient, final boolean ack) {
final UUID uuid = currentGame.getGameID();
new Thread(new SendRunner() {
@Override
public Message send() {
DefaultPacketExtension extension = createJRummikubExtension();
-
+
extension.setValue("messageType", "game_join_ack");
extension.setValue("uuid", uuid.toString());
extension.setValue("ack", Boolean.toString(ack));
-
+
Message message = createMessage(extension);
message.setType(Message.Type.normal);
message.setTo(muc.getRoom() + "/" + recipient);
@@ -198,21 +216,23 @@ class ConnectionControl {
}).start();
}
- void changeColor(final Color color) {
+ @Override
+ public void changeColor(final Color color) {
final UUID uuid = currentGame.getGameID();
new Thread(new SendRunner() {
@Override
public Message send() {
DefaultPacketExtension extension = createJRummikubExtension();
-
+
extension.setValue("messageType", "change_color");
extension.setValue("uuid", uuid.toString());
- extension.setValue("color", Base64.encodeObject(color, Base64.GZIP));
-
+ extension.setValue("color",
+ Base64.encodeObject(color, Base64.GZIP));
+
return createMessage(extension);
}
}).start();
-
+
}
private void sendGameOffer() {
@@ -231,15 +251,15 @@ class ConnectionControl {
}
}).start();
}
-
+
private void requestGames() {
new Thread(new SendRunner() {
@Override
public Message send() {
DefaultPacketExtension extension = createJRummikubExtension();
-
+
extension.setValue("messageType", "game_request");
-
+
return createMessage(extension);
}
});