Further paranoia changes to prevent timer callbacks from occurring in an uncontrolled state.

This commit is contained in:
lotodore
2009-06-15 22:34:07 +00:00
parent 3d57f65e2b
commit 22edd63dde
6 changed files with 66 additions and 5 deletions
+18 -1
View File
@@ -26,6 +26,7 @@
#include <string>
#define CLIENT_INITIAL_STATE ClientStateInit
#define CLIENT_FINAL_STATE ClientStateFinal
class ClientThread;
class ClientCallback;
@@ -42,7 +43,7 @@ public:
virtual void Enter(boost::shared_ptr<ClientThread> client) = 0;
virtual void Exit(boost::shared_ptr<ClientThread> client) = 0;
virtual void HandlePacket(boost::shared_ptr<ClientThread> /*client*/, boost::shared_ptr<NetPacket> /*tmpPacket*/) = 0;
virtual void HandlePacket(boost::shared_ptr<ClientThread> client, boost::shared_ptr<NetPacket> tmpPacket) = 0;
};
// State: Initialization.
@@ -401,4 +402,20 @@ protected:
static void ResetPlayerSets(Game &curGame);
};
class ClientStateFinal : public ClientState
{
public:
static ClientStateFinal &Instance();
virtual ~ClientStateFinal() {}
virtual void Enter(boost::shared_ptr<ClientThread> /*client*/) {}
virtual void Exit(boost::shared_ptr<ClientThread> /*client*/) {}
virtual void HandlePacket(boost::shared_ptr<ClientThread> /*client*/, boost::shared_ptr<NetPacket> /*tmpPacket*/) {}
protected:
// Protected constructor - this is a singleton.
ClientStateFinal() {}
};
#endif