00001
00002
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00031
00032 #ifndef RCSC_SOCCER_AGENT_H
00033 #define RCSC_SOCCER_AGENT_H
00034
00035 namespace rcsc {
00036
00037 class BasicClient;
00038 class CmdLineParser;
00039
00050 class SoccerAgent {
00051 public:
00052 friend class BasicClient;
00053
00054 protected:
00056 BasicClient * M_client;
00057
00058 private:
00059
00060
00061 SoccerAgent( const SoccerAgent & );
00062 SoccerAgent & operator=( const SoccerAgent & );
00063
00064 public:
00065
00069 SoccerAgent();
00070
00074 virtual
00075 ~SoccerAgent();
00076
00090 bool init( BasicClient * client,
00091 const int argc,
00092 const char * const * argv );
00093
00094 protected:
00095
00104 virtual
00105 bool initImpl( CmdLineParser & cmd_parser ) = 0;
00106
00115 virtual
00116 bool handleStart() = 0;
00117
00123 virtual
00124 void handleMessage() = 0;
00125
00133 virtual
00134 void handleTimeout( const int timeout_count,
00135 const int waited_msec ) = 0;
00136
00142 virtual
00143 void handleExit() = 0;
00144 };
00145
00146 }
00147
00148 #endif