Cherry-picked CommandFactory connection between ControllerServer and RaceLogic.

#story[1096]
main
Connor Taylor-Brown 8 years ago
parent e76de1cbf9
commit 55798447ab

@ -1,20 +1,17 @@
package mock.app; package mock.app;
import mock.model.RaceLogic;
import network.Messages.Enums.XMLMessageType; import network.Messages.Enums.XMLMessageType;
import network.Messages.LatestMessages; import network.Messages.LatestMessages;
import network.Messages.XMLMessage; import network.Messages.XMLMessage;
import org.mockito.Mock;
import visualiser.gameController.ControllerServer; import visualiser.gameController.ControllerServer;
import java.io.DataOutputStream; import java.io.DataOutputStream;
import java.io.IOException; import java.io.IOException;
import java.lang.reflect.Array;
import java.net.InetAddress; import java.net.InetAddress;
import java.net.ServerSocket; import java.net.ServerSocket;
import java.net.Socket; import java.net.Socket;
import java.net.UnknownHostException; import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.ArrayBlockingQueue;
/** /**
@ -43,6 +40,10 @@ public class ConnectionAcceptor implements Runnable {
private short boatXMLSequenceNumber; private short boatXMLSequenceNumber;
//regatta xml sequence number //regatta xml sequence number
private short regattaXMLSequenceNumber; private short regattaXMLSequenceNumber;
//controller server
private ControllerServer controllerServer;
//
private RaceLogic rl = null;
/** /**
* Connection Acceptor Constructor * Connection Acceptor Constructor
@ -65,6 +66,11 @@ public class ConnectionAcceptor implements Runnable {
return serverPort; return serverPort;
} }
public void setRace(RaceLogic rl){
this.rl = rl;
}
/** /**
* Run the Acceptor * Run the Acceptor
*/ */
@ -76,7 +82,7 @@ public class ConnectionAcceptor implements Runnable {
Socket mockSocket = serverSocket.accept(); Socket mockSocket = serverSocket.accept();
DataOutputStream outToVisualiser = new DataOutputStream(mockSocket.getOutputStream()); DataOutputStream outToVisualiser = new DataOutputStream(mockSocket.getOutputStream());
MockOutput mockOutput = new MockOutput(latestMessages, outToVisualiser); MockOutput mockOutput = new MockOutput(latestMessages, outToVisualiser);
ControllerServer controllerServer = new ControllerServer(mockSocket); this.controllerServer = new ControllerServer(mockSocket, rl);
new Thread(mockOutput).start(); new Thread(mockOutput).start();
new Thread(controllerServer).start(); new Thread(controllerServer).start();
mockOutputList.add(mockOutput); mockOutputList.add(mockOutput);

@ -94,6 +94,8 @@ public class Event {
//Create and start race. //Create and start race.
RaceLogic newRace = new RaceLogic(new MockRace(boatDataSource, raceDataSource, regattaDataSource, this.latestMessages, this.boatPolars, Constants.RaceTimeScale), this.latestMessages); RaceLogic newRace = new RaceLogic(new MockRace(boatDataSource, raceDataSource, regattaDataSource, this.latestMessages, this.boatPolars, Constants.RaceTimeScale), this.latestMessages);
mockOutput.setRace(newRace);
new Thread(newRace).start(); new Thread(newRace).start();
} }

@ -1,12 +1,9 @@
package visualiser.gameController; package visualiser.gameController;
import mock.model.commandFactory.Command; import mock.model.RaceLogic;
import mock.model.commandFactory.CommandFactory;
import network.BinaryMessageDecoder; import network.BinaryMessageDecoder;
import network.MessageDecoders.BoatActionDecoder; import network.MessageDecoders.BoatActionDecoder;
import network.Messages.Enums.BoatActionEnum; import network.Messages.Enums.BoatActionEnum;
import visualiser.gameController.Keys.ControlKey;
import visualiser.gameController.Keys.KeyFactory;
import java.io.DataInputStream; import java.io.DataInputStream;
import java.io.IOException; import java.io.IOException;
@ -29,13 +26,19 @@ public class ControllerServer extends Observable implements Runnable {
* Last received boat action * Last received boat action
*/ */
private BoatActionEnum action; private BoatActionEnum action;
/**
*
*/
private RaceLogic rc;
/** /**
* Initialise server-side controller with live client socket * Initialise server-side controller with live client socket
* @param socket to client * @param socket to client
*/ */
public ControllerServer(Socket socket) { public ControllerServer(Socket socket, RaceLogic rc) {
this.socket = socket; this.socket = socket;
this.rc = rc;
this.addObserver(rc);
try { try {
this.inputStream = new DataInputStream(this.socket.getInputStream()); this.inputStream = new DataInputStream(this.socket.getInputStream());
} catch (IOException e) { } catch (IOException e) {

Loading…
Cancel
Save