fixed issue 25 - server waits for all clients to confirm initialization before starting game

This commit is contained in:
BetaSteward 2010-11-30 04:35:26 +00:00
parent f81c238994
commit 3ca748e16d
9 changed files with 56 additions and 45 deletions

View file

@ -49,6 +49,7 @@ public class Session {
private UUID clientId;
private String username;
private int messageId = 0;
private String ackMessage;
private final CallbackServerSession callback = new CallbackServerSession();
public Session(String userName, UUID clientId) {
@ -77,11 +78,11 @@ public class Session {
return null;
}
public synchronized void fireCallback(ClientCallback call) {
public synchronized void fireCallback(final ClientCallback call) {
call.setMessageId(messageId++);
if (logger.isLoggable(Level.FINE))
logger.fine(sessionId + " - " + call.getMessageId() + " - " + call.getMethod());
try {
call.setMessageId(messageId++);
if (logger.isLoggable(Level.FINE))
logger.fine(sessionId + " - " + call.getMessageId() + " - " + call.getMethod());
callback.setCallback(call);
} catch (InterruptedException ex) {
logger.log(Level.SEVERE, null, ex);
@ -100,6 +101,18 @@ public class Session {
fireCallback(new ClientCallback("replayGame", null));
}
public void ack(String message) {
this.ackMessage = message;
}
public String getAckMessage() {
return ackMessage;
}
public void clearAck() {
this.ackMessage = "";
}
public String getUsername() {
return username;
}