+ NetworkSender(const Piece::Colour & colour, Controller * newController, Network * newNetwork) : NetworkController(colour, newNetwork), controller(newController) {}
+ virtual ~NetworkSender() {delete controller;}
+
+ virtual bool Valid() const {return NetworkController::Valid() && controller->Valid();}
+
+ virtual void Message(const char * message)
+ {
+ //fprintf(stderr,"NetworkSender sending message %s to underlying controller\n", message);
+ controller->Message(message);
+ }
+
+ virtual MovementResult QuerySetup(const char * opponentName, std::string setup[]);
+ virtual MovementResult QueryMove(std::string & buffer);
+
+ private:
+ Controller * controller;
+