1 #include "controller.h"
2 #include "ai_controller.h"
3 #include "human_controller.h"
6 #ifndef NETWORK_CONTROLLER_H
7 #define NETWORK_CONTROLLER_H
9 class NetworkController : public Controller
12 NetworkController(const Piece::Colour & colour, Network * newNetwork) : Controller(colour), network(newNetwork) {}
13 virtual ~NetworkController() {}
15 //virtual void Message(const char * message) = 0;
16 virtual bool Valid() const {return network->Valid();}
22 class NetworkSender : public NetworkController
25 NetworkSender(const Piece::Colour & colour, Controller * newController, Network * newNetwork) : NetworkController(colour, newNetwork), controller(newController) {}
26 virtual ~NetworkSender() {delete controller;}
28 virtual bool Valid() const {return NetworkController::Valid() && controller->Valid();}
30 virtual bool Message(const char * message)
32 //fprintf(stderr,"NetworkSender sending message %s to underlying controller\n", message);
33 return (controller->Message(message));
36 virtual MovementResult QuerySetup(const char * opponentName, std::string setup[]);
37 virtual MovementResult QueryMove(std::string & buffer);
40 Controller * controller;
44 class NetworkReceiver : public NetworkController
47 NetworkReceiver(const Piece::Colour & colour, Network * newNetwork) : NetworkController(colour, newNetwork) {}
48 virtual ~NetworkReceiver() {}
50 virtual bool Message(const char * message) {return true;} //Do nothing (Counter intuitive much)
51 virtual MovementResult QuerySetup(const char * opponentName, std::string setup[]);
52 virtual MovementResult QueryMove(std::string & buffer);
57 #endif //NETWORK_CONTROLLER_H