//////////////////////////////////////////////////////////////////////////////
//
// Asura_NetSocket_Xbox360.h
//
// Copyright (c) 2007 Rebellion. All rights reserved.
//
// Description:
//
//     360 sockets implementation of Asura_NetSocket class
//
//////////////////////////////////////////////////////////////////////////////

// B E G I N   F I L E   W R A P P E R ///////////////////////////////////////

#ifdef ASURA_USE_PRAGMA_ONCE
#pragma once
#endif

#ifndef ___ASURA_NETSOCKET_XBOX360_H___
#define ___ASURA_NETSOCKET_XBOX360_H___ 1

#include "Network/Asura_NetSocket.h"

class Asura_NetSocket_Xbox360 : public Asura_NetSocket
{
public:
	Asura_NetSocket_Xbox360( u_int uMaxMachines )
		: Asura_NetSocket(uMaxMachines)
	{}

	virtual int				API_GetLastError();

	static void				GetAddressFromString(const char* szAddress, u_int* puAddress, unsigned short* pusPort);
	static const char*		GetStringFromAddress(u_int uAddress, unsigned short usPort);

protected:
	virtual bool			API_Bind(Asura_NetAddress xAddress, u_short& usPort );
	virtual void			API_Close();
	virtual bool			API_ReceiveMessages();
	virtual bool			API_SendTo(const Asura_NetSocket_MessageInfo* pxMessageInfo);
	virtual void			API_SetBroadcastEnabled(bool bEnabled);
};

// E N D   F I L E   W R A P P E R ///////////////////////////////////////////

#endif // #ifndef ___ASURA_NETSOCKET_XBOX360_H___
