// Copyright 2005 Electronic Arts Inc.
#ifndef EA_GAMETALK_GAMETALKPROTOCOL_H
#define EA_GAMETALK_GAMETALKPROTOCOL_H

#include "GameTalk/IGameTalkProtocol.h"

namespace EA
{
	namespace GameTalk
	{
		class Manager;
		class Message;

		class GameTalkProtocol : public IGameTalkProtocol
		{
		public:
			GameTalkProtocol(const char* const ipAddress, const int port = EA::GameTalk::IGameTalkProtocol::DEFAULT_GAMETALK_PORT);
			virtual ~GameTalkProtocol();

			// To Do
			virtual bool IsConnected() { return true; }
			virtual bool Send(void* buffer, int msgSize);
			virtual int Poll();

		private:
			friend class Manager;
			void Deliver (Message* msg);
			Manager* mGTMgr;

			GameTalkProtocol();
			GameTalkProtocol(const GameTalkProtocol& nc);
			GameTalkProtocol & operator=(const GameTalkProtocol& nc);
		};
	}
}


#endif EA_GAMETALK_GAMETALKPROTOCOL_H

