Refactor INetworkDriver::PopEvent to use network event as output parameter rather than raw pointer
#1992
This commit is contained in:
@@ -162,7 +162,7 @@ void ENetDriver::Disconnect(const NetworkConnection& connection)
|
||||
}
|
||||
}
|
||||
|
||||
bool ENetDriver::PopEvent(NetworkEvent* eventPtr)
|
||||
bool ENetDriver::PopEvent(NetworkEvent& eventPtr)
|
||||
{
|
||||
ASSERT(_host);
|
||||
ENetEvent event;
|
||||
@@ -173,30 +173,30 @@ bool ENetDriver::PopEvent(NetworkEvent* eventPtr)
|
||||
{
|
||||
// Copy sender data
|
||||
const uint32 connectionId = enet_peer_get_id(event.peer);
|
||||
eventPtr->Sender.ConnectionId = connectionId;
|
||||
eventPtr.Sender.ConnectionId = connectionId;
|
||||
|
||||
switch (event.type)
|
||||
{
|
||||
case ENET_EVENT_TYPE_CONNECT:
|
||||
eventPtr->EventType = NetworkEventType::Connected;
|
||||
eventPtr.EventType = NetworkEventType::Connected;
|
||||
if (IsServer())
|
||||
_peerMap.Add(connectionId, event.peer);
|
||||
break;
|
||||
case ENET_EVENT_TYPE_DISCONNECT:
|
||||
eventPtr->EventType = NetworkEventType::Disconnected;
|
||||
eventPtr.EventType = NetworkEventType::Disconnected;
|
||||
if (IsServer())
|
||||
_peerMap.Remove(connectionId);
|
||||
break;
|
||||
case ENET_EVENT_TYPE_DISCONNECT_TIMEOUT:
|
||||
eventPtr->EventType = NetworkEventType::Timeout;
|
||||
eventPtr.EventType = NetworkEventType::Timeout;
|
||||
if (IsServer())
|
||||
_peerMap.Remove(connectionId);
|
||||
break;
|
||||
case ENET_EVENT_TYPE_RECEIVE:
|
||||
eventPtr->EventType = NetworkEventType::Message;
|
||||
eventPtr->Message = _networkHost->CreateMessage();
|
||||
eventPtr->Message.Length = event.packet->dataLength;
|
||||
Platform::MemoryCopy(eventPtr->Message.Buffer, event.packet->data, event.packet->dataLength);
|
||||
eventPtr.EventType = NetworkEventType::Message;
|
||||
eventPtr.Message = _networkHost->CreateMessage();
|
||||
eventPtr.Message.Length = event.packet->dataLength;
|
||||
Platform::MemoryCopy(eventPtr.Message.Buffer, event.packet->data, event.packet->dataLength);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -29,7 +29,7 @@ public:
|
||||
bool Connect() override;
|
||||
void Disconnect() override;
|
||||
void Disconnect(const NetworkConnection& connection) override;
|
||||
bool PopEvent(NetworkEvent* eventPtr) override;
|
||||
bool PopEvent(NetworkEvent& eventPtr) override;
|
||||
void SendMessage(NetworkChannelType channelType, const NetworkMessage& message) override;
|
||||
void SendMessage(NetworkChannelType channelType, const NetworkMessage& message, NetworkConnection target) override;
|
||||
void SendMessage(NetworkChannelType channelType, const NetworkMessage& message, const Array<NetworkConnection, HeapAllocation>& targets) override;
|
||||
|
||||
@@ -92,7 +92,7 @@ void NetworkLagDriver::Disconnect(const NetworkConnection& connection)
|
||||
_driver->Disconnect(connection);
|
||||
}
|
||||
|
||||
bool NetworkLagDriver::PopEvent(NetworkEvent* eventPtr)
|
||||
bool NetworkLagDriver::PopEvent(NetworkEvent& eventPtr)
|
||||
{
|
||||
if (!_driver)
|
||||
return false;
|
||||
@@ -104,7 +104,7 @@ bool NetworkLagDriver::PopEvent(NetworkEvent* eventPtr)
|
||||
if (e.Lag > 0.0)
|
||||
continue;
|
||||
|
||||
*eventPtr = e.Event;
|
||||
eventPtr = e.Event;
|
||||
_events.RemoveAtKeepOrder(i);
|
||||
return true;
|
||||
}
|
||||
@@ -117,7 +117,7 @@ bool NetworkLagDriver::PopEvent(NetworkEvent* eventPtr)
|
||||
|
||||
auto& e = _events.AddOne();
|
||||
e.Lag = (double)Lag;
|
||||
e.Event = *eventPtr;
|
||||
e.Event = eventPtr;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -68,7 +68,7 @@ public:
|
||||
bool Connect() override;
|
||||
void Disconnect() override;
|
||||
void Disconnect(const NetworkConnection& connection) override;
|
||||
bool PopEvent(NetworkEvent* eventPtr) override;
|
||||
bool PopEvent(NetworkEvent& eventPtr) override;
|
||||
void SendMessage(NetworkChannelType channelType, const NetworkMessage& message) override;
|
||||
void SendMessage(NetworkChannelType channelType, const NetworkMessage& message, NetworkConnection target) override;
|
||||
void SendMessage(NetworkChannelType channelType, const NetworkMessage& message, const Array<NetworkConnection, HeapAllocation>& targets) override;
|
||||
|
||||
Reference in New Issue
Block a user