mirror of
https://github.com/dashr9230/SA-MP.git
synced 2025-09-19 20:26:14 +08:00
[raknet] Add TCPInterface class
* Adds TCPInterface ctor * Adds `TCPInterface::Receive()` * Adds `TCPInterface::HasLostConnection()`
This commit is contained in:
@ -13,11 +13,30 @@ typedef unsigned int RakNetTime;
|
|||||||
typedef long long RakNetTimeNS;
|
typedef long long RakNetTimeNS;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/// \brief Unique identifier for a system.
|
||||||
|
/// Corresponds to a network address
|
||||||
|
struct RAK_DLL_EXPORT PlayerID
|
||||||
|
{
|
||||||
|
char _gap0[6];
|
||||||
|
};
|
||||||
|
|
||||||
|
/// This represents a user message from another system.
|
||||||
|
struct Packet
|
||||||
|
{
|
||||||
|
char _gap0;
|
||||||
|
};
|
||||||
|
|
||||||
struct RPCParameters
|
struct RPCParameters
|
||||||
{
|
{
|
||||||
char _gap0; // TODO: RPCParameters
|
char _gap0; // TODO: RPCParameters
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/// Index of an invalid PlayerID
|
||||||
|
const PlayerID UNASSIGNED_PLAYER_ID =
|
||||||
|
{
|
||||||
|
0xFFFFFFFF, 0xFFFF
|
||||||
|
};
|
||||||
|
|
||||||
/// \def REGISTER_STATIC_RPC
|
/// \def REGISTER_STATIC_RPC
|
||||||
/// \ingroup RAKNET_RPC
|
/// \ingroup RAKNET_RPC
|
||||||
/// Register a C function as a Remote procedure.
|
/// Register a C function as a Remote procedure.
|
||||||
|
28
raknet/TCPInterface.cpp
Normal file
28
raknet/TCPInterface.cpp
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
// TODO: Implement TCPInterface.cpp
|
||||||
|
|
||||||
|
#include "TCPInterface.h"
|
||||||
|
|
||||||
|
TCPInterface::TCPInterface()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
Packet* TCPInterface::Receive( void )
|
||||||
|
{
|
||||||
|
if (isStarted==false)
|
||||||
|
return 0;
|
||||||
|
return incomingMessages.ReadLock();
|
||||||
|
}
|
||||||
|
PlayerID TCPInterface::HasLostConnection(void)
|
||||||
|
{
|
||||||
|
PlayerID *out;
|
||||||
|
out = lostConnections.ReadLock();
|
||||||
|
if (out)
|
||||||
|
{
|
||||||
|
lostConnections.ReadUnlock();
|
||||||
|
return *out;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return UNASSIGNED_PLAYER_ID;
|
||||||
|
}
|
||||||
|
}
|
31
raknet/TCPInterface.h
Normal file
31
raknet/TCPInterface.h
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
// TODO: Implement TCPInterface.h
|
||||||
|
|
||||||
|
#ifndef __SIMPLE_TCP_SERVER
|
||||||
|
#define __SIMPLE_TCP_SERVER
|
||||||
|
|
||||||
|
#include "NetworkTypes.h"
|
||||||
|
#include "SingleProducerConsumer.h"
|
||||||
|
#include "Export.h"
|
||||||
|
|
||||||
|
/// \internal
|
||||||
|
/// \brief As the name says, a simple multithreaded TCP server. Used by TelnetTransport
|
||||||
|
class RAK_DLL_EXPORT TCPInterface
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
TCPInterface();
|
||||||
|
|
||||||
|
/// Returns data received
|
||||||
|
Packet* Receive( void );
|
||||||
|
|
||||||
|
/// Queued events of lost connections
|
||||||
|
PlayerID HasLostConnection(void);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
bool isStarted;
|
||||||
|
|
||||||
|
DataStructures::SingleProducerConsumer<Packet> incomingMessages;
|
||||||
|
|
||||||
|
DataStructures::SingleProducerConsumer<PlayerID> lostConnections;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
Reference in New Issue
Block a user