Cherry-picked CommandFactory connection between ControllerServer and RaceLogic.
#story[1096]
This commit is contained in:
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user