Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages

PhxPlayer.h

Go to the documentation of this file.
00001 #ifndef PHX_PLAYER_H
00002 #define PHX_PLAYER_H
00003 
00011 namespace Phx {
00012 
00030   class Player : public NamedInterface {
00031   public:
00032     class Manager;
00033 
00034     /* Other attributes expected in the future:
00035      * rank()
00036      * airToAirKills()
00037      * airToGroundKills(), etc.
00038      *
00039      * Player is created from a PlayerDescription containing this
00040      * information (i.e., the "logbook").
00041      */
00042 
00049     virtual String callsign() = 0;
00050   };
00051 
00067   class LocalPlayer : public Player {
00068   public:
00069     const static NamedInterface::Type INTERFACE_TYPE;
00070     const static String               INTERFACE_TYPE_NAME;
00071 
00072     class Client;
00073 
00085     Ptr<Client> newClient(const String& clientName) = 0;
00086   };
00087 
00095   class LocalPlayer::Client : public LockedPtrInterface<Client> {
00096   public:
00097     virtual Ptr<LogicalInputEngine::AxisClient> newAxisClient(const String& axisName) = 0;
00098     virtual Ptr<LogicalInputEngine::ButtonClient> newButtonClient(const String& buttonName) = 0;
00099   };
00100 
00104   class RemotePlayer : public Player {
00105   public:
00106     const static NamedInterface::Type INTERFACE_TYPE;
00107     const static String               INTERFACE_TYPE_NAME;
00108 
00109     /*
00110      * Future attributes:
00111      * // IP-address or other identifying info?
00112      * address(), port()
00113      */
00114   };
00115 
00116 
00120   class SimulatedPlayer : public Player {
00121   public:
00122     const static NamedInterface::Type INTERFACE_TYPE;
00123     const static String               INTERFACE_TYPE_NAME;
00124   };
00125 
00126 
00131   class Player::Manager : public NamedInterface {
00132   public:
00133     const static NamedInterface::Type INTERFACE_TYPE;
00134     const static String               INTERFACE_TYPE_NAME;
00135   };
00136 
00137 
00148   class PlayerDescription {
00149   public:
00150     const static NamedInterface::Type DESCRIPTION_TYPE;
00151     const static String               DESCRIPTION_TYPE_NAME;
00152   };
00153 
00154 }; // namespace Phx
00155 
00156 
00157 #endif /* PHX_PLAYER_H */

Generated on Mon Jul 10 19:45:28 2006 for Phoenix OSFS by  doxygen 1.4.2