///////////////////////////////////////////////////////////////////////////////
//
// File: Asura_QosSocket_BSD.h
//
// Created by Martin G.Harris (15/4/2009)
// 
// Copyright (C) 2009 Rebellion, All Rights Reserved.
//
///////////////////////////////////////////////////////////////////////////////

#ifdef ASURA_USE_PRAGMA_ONCE
    #pragma once
#endif

#ifndef Asura_QosSocket_BSD_H__
#define Asura_QosSocket_BSD_H__ 1

#ifdef ASURA_ENABLE_QOS_SYSTEM

// Includes
#include "Network/Asura_Qos_System.h"

/////////////////////////
// Asura_QosSocket_BSD //
/////////////////////////
class Asura_QosSocket_BSD : public Asura_QosSocket
{
public:
	Asura_QosSocket_BSD();
	virtual ~Asura_QosSocket_BSD();

	virtual void CreateSocket(Asura_Qos_Listener* pxListener, u_short usLocalPort);
	virtual void CloseSocket();
	virtual bool SendTo(const Asura_Qos_NetConnection* pxDestination, const char* pcData, int iDataLength);
	virtual bool Receive(Asura_Qos_Listener* pxListener, u_int uWaitTimeSeconds = 0);

protected:
	SOCKET m_xSocket;
	u_short m_usLocalPort;
};

#endif //#ifdef ASURA_ENABLE_QOS_SYSTEM


#endif //Asura_QosSocket_BSD_H__

