From: <cl...@us...> - 2008-11-15 06:20:42
|
Revision: 3488 http://colossus.svn.sourceforge.net/colossus/?rev=3488&view=rev Author: cleka Date: 2008-11-15 06:20:38 +0000 (Sat, 15 Nov 2008) Log Message: ----------- Redone r3485, now working: Local clients (run in same JVM as the server) now have a reference to the server, instead of just a boolean "remote". This is pre-work for the "File-Save etc. should cause the Save be done directly, instead of via sending a message" (if client-server connection gets stuck, one could not even save the Game). Modified Paths: -------------- trunk/Colossus/core/src/main/java/net/sf/colossus/client/Client.java trunk/Colossus/core/src/main/java/net/sf/colossus/client/WebClient.java trunk/Colossus/core/src/main/java/net/sf/colossus/server/Server.java trunk/Colossus/core/src/main/java/net/sf/colossus/server/Start.java Modified: trunk/Colossus/core/src/main/java/net/sf/colossus/client/Client.java =================================================================== --- trunk/Colossus/core/src/main/java/net/sf/colossus/client/Client.java 2008-11-14 15:35:05 UTC (rev 3487) +++ trunk/Colossus/core/src/main/java/net/sf/colossus/client/Client.java 2008-11-15 06:20:38 UTC (rev 3488) @@ -46,6 +46,7 @@ import net.sf.colossus.server.Dice; import net.sf.colossus.server.GameServerSide; import net.sf.colossus.server.IServer; +import net.sf.colossus.server.Server; import net.sf.colossus.server.Start; import net.sf.colossus.server.VariantSupport; import net.sf.colossus.util.ChildThreadManager; @@ -224,7 +225,7 @@ private BattleMovement battleMovement; private Strike strike; - private boolean remote; + private Server localServer; private SocketClientThread sct; private Timer connectionCheckTimer; @@ -283,11 +284,11 @@ * network and the serialization/deserialization of all objects */ public Client(String host, int port, Game game, String playerName, - boolean remote, boolean byWebClient, boolean noOptionsFile) + Server theServer, boolean byWebClient, boolean noOptionsFile) { this(game, playerName, noOptionsFile); - this.remote = remote; + this.localServer = theServer; this.startedByWebClient = byWebClient; sct = new SocketClientThread(this, host, port); @@ -306,7 +307,7 @@ String title = "Socket initialialization failed!"; showErrorMessage(reasonFail, title); - if (remote) + if (isRemote()) { Start.setCurrentWhatToDoNext(Start.NetClientDialog); } @@ -316,7 +317,7 @@ else { this.server = sct; - if (remote) + if (isRemote()) { ResourceLoader.setDataServer(host, port + 1); } @@ -373,7 +374,7 @@ boolean isRemote() { - return remote; + return (localServer == null); } boolean isAlive() @@ -1453,7 +1454,7 @@ } else if (closedBy == ClosedByConstant.CLOSED_BY_SERVER) { - if (remote) + if (isRemote()) { defaultCursor(); board.setServerClosedMessage(gameOver); @@ -4666,7 +4667,7 @@ { Start.setCurrentWhatToDoNext(Start.StartWebClient); } - else if (remote) + else if (isRemote()) { // Remote clients get back to Network Client dialog Start.setCurrentWhatToDoNext(Start.NetClientDialog); @@ -4680,7 +4681,7 @@ public void notifyServer() { clearUndoStack(); - if (!remote) + if (!isRemote()) { server.stopGame(); } Modified: trunk/Colossus/core/src/main/java/net/sf/colossus/client/WebClient.java =================================================================== --- trunk/Colossus/core/src/main/java/net/sf/colossus/client/WebClient.java 2008-11-14 15:35:05 UTC (rev 3487) +++ trunk/Colossus/core/src/main/java/net/sf/colossus/client/WebClient.java 2008-11-15 06:20:38 UTC (rev 3488) @@ -1590,7 +1590,7 @@ // TODO needs to be constructed properly Game dummyGame = new Game(null, new String[0]); boolean noOptionsFile = false; - gc = new Client(hostname, p, dummyGame, username, true, true, + gc = new Client(hostname, p, dummyGame, username, null, true, noOptionsFile); boolean failed = gc.getFailed(); if (failed) Modified: trunk/Colossus/core/src/main/java/net/sf/colossus/server/Server.java =================================================================== --- trunk/Colossus/core/src/main/java/net/sf/colossus/server/Server.java 2008-11-14 15:35:05 UTC (rev 3487) +++ trunk/Colossus/core/src/main/java/net/sf/colossus/server/Server.java 2008-11-15 06:20:38 UTC (rev 3488) @@ -851,7 +851,7 @@ Game dummyGame = new Game(null, new String[0]); new Client("127.0.0.1", port, dummyGame, playerName, - false, false, dontUseOptionsFile); + this, false, dontUseOptionsFile); } boolean addClient(final IClient client, Modified: trunk/Colossus/core/src/main/java/net/sf/colossus/server/Start.java =================================================================== --- trunk/Colossus/core/src/main/java/net/sf/colossus/server/Start.java 2008-11-14 15:35:05 UTC (rev 3487) +++ trunk/Colossus/core/src/main/java/net/sf/colossus/server/Start.java 2008-11-15 06:20:38 UTC (rev 3488) @@ -227,7 +227,7 @@ // TODO needs to be constructed properly Game dummyGame = new Game(null, new String[0]); - Client c = new Client(hostname, port, dummyGame, playerName, true, + Client c = new Client(hostname, port, dummyGame, playerName, null, false, false); failed = c.getFailed(); c = null; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |