Backing up the results files before fucking with them
[progcomp2012.git] / judge / manager / network_controller.h
1 #include "controller.h"
2 #include "ai_controller.h"
3 #include "human_controller.h"
4 #include "network.h"
5
6 #ifndef NETWORK_CONTROLLER_H
7 #define NETWORK_CONTROLLER_H
8
9 class NetworkController : public Controller
10 {
11         public:
12                 NetworkController(const Piece::Colour & colour, Network * newNetwork) : Controller(colour), network(newNetwork) {}
13                 virtual ~NetworkController() {}
14
15                 //virtual void Message(const char * message) = 0; 
16                 virtual bool Valid() const {return network->Valid();}
17
18         protected:
19                 Network * network;
20 };
21
22 class NetworkSender : public NetworkController
23 {
24         public:
25                 NetworkSender(const Piece::Colour & colour, Controller * newController, Network * newNetwork) : NetworkController(colour, newNetwork), controller(newController) {}
26                 virtual ~NetworkSender() {delete controller;}
27
28                 virtual bool Valid() const {return NetworkController::Valid() && controller->Valid();}
29
30                 virtual void Message(const char * message) 
31                 {
32                         //fprintf(stderr,"NetworkSender sending message %s to underlying controller\n", message);
33                         controller->Message(message);
34                 }
35
36                 virtual MovementResult QuerySetup(const char * opponentName, std::string setup[]);
37                 virtual MovementResult QueryMove(std::string & buffer);
38
39         private:
40                 Controller * controller;
41
42 };
43
44 class NetworkReceiver : public NetworkController
45 {
46         public:
47                 NetworkReceiver(const Piece::Colour & colour, Network * newNetwork) : NetworkController(colour, newNetwork) {}
48                 virtual ~NetworkReceiver() {}
49
50                 virtual void Message(const char * message) {} //Do nothing (Counter intuitive much)
51                 virtual MovementResult QuerySetup(const char * opponentName, std::string setup[]);
52                 virtual MovementResult QueryMove(std::string & buffer);
53                 
54
55 };
56
57 #endif //NETWORK_CONTROLLER_H
58
59 //EOF

UCC git Repository :: git.ucc.asn.au