1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-22 06:23:04 +01:00

Close #12426: Refactor NETWORK_READPACKET to use strong enum (#12807)

Replacing enum NETWORK_READPACKET with enum class NetworkReadPacket.
This commit is contained in:
Julia Pinheiro
2020-08-31 09:13:15 -03:00
committed by GitHub
parent e9803fc4b5
commit dafde532af
7 changed files with 32 additions and 32 deletions

View File

@@ -1673,20 +1673,20 @@ void NetworkBase::Server_Send_EVENT_PLAYER_DISCONNECTED(const char* playerName,
bool NetworkBase::ProcessConnection(NetworkConnection& connection)
{
int32_t packetStatus;
NetworkReadPacket packetStatus;
do
{
packetStatus = connection.ReadPacket();
switch (packetStatus)
{
case NETWORK_READPACKET_DISCONNECTED:
case NetworkReadPacket::Disconnected:
// closed connection or network error
if (!connection.GetLastDisconnectReason())
{
connection.SetLastDisconnectReason(STR_MULTIPLAYER_CONNECTION_CLOSED);
}
return false;
case NETWORK_READPACKET_SUCCESS:
case NetworkReadPacket::Success:
// done reading in packet
ProcessPacket(connection, connection.InboundPacket);
if (connection.Socket == nullptr)
@@ -1694,14 +1694,14 @@ bool NetworkBase::ProcessConnection(NetworkConnection& connection)
return false;
}
break;
case NETWORK_READPACKET_MORE_DATA:
case NetworkReadPacket::MoreData:
// more data required to be read
break;
case NETWORK_READPACKET_NO_DATA:
case NetworkReadPacket::NoData:
// could not read anything from socket
break;
}
} while (packetStatus == NETWORK_READPACKET_SUCCESS);
} while (packetStatus == NetworkReadPacket::Success);
connection.SendQueuedPackets();

View File

@@ -30,7 +30,7 @@ NetworkConnection::~NetworkConnection()
delete[] _lastDisconnectReason;
}
int32_t NetworkConnection::ReadPacket()
NetworkReadPacket NetworkConnection::ReadPacket()
{
size_t bytesRead = 0;
@@ -42,8 +42,8 @@ int32_t NetworkConnection::ReadPacket()
uint8_t* buffer = reinterpret_cast<uint8_t*>(&InboundPacket.Header);
NETWORK_READPACKET status = Socket->ReceiveData(buffer, missingLength, &bytesRead);
if (status != NETWORK_READPACKET_SUCCESS)
NetworkReadPacket status = Socket->ReceiveData(buffer, missingLength, &bytesRead);
if (status != NetworkReadPacket::Success)
{
return status;
}
@@ -52,7 +52,7 @@ int32_t NetworkConnection::ReadPacket()
if (InboundPacket.BytesTransferred < sizeof(InboundPacket.Header))
{
// If still not enough data for header, keep waiting.
return NETWORK_READPACKET_MORE_DATA;
return NetworkReadPacket::MoreData;
}
// Normalise values.
@@ -74,8 +74,8 @@ int32_t NetworkConnection::ReadPacket()
if (missingLength > 0)
{
NETWORK_READPACKET status = Socket->ReceiveData(buffer, std::min(missingLength, NetworkBufferSize), &bytesRead);
if (status != NETWORK_READPACKET_SUCCESS)
NetworkReadPacket status = Socket->ReceiveData(buffer, std::min(missingLength, NetworkBufferSize), &bytesRead);
if (status != NetworkReadPacket::Success)
{
return status;
}
@@ -91,11 +91,11 @@ int32_t NetworkConnection::ReadPacket()
RecordPacketStats(InboundPacket, false);
return NETWORK_READPACKET_SUCCESS;
return NetworkReadPacket::Success;
}
}
return NETWORK_READPACKET_MORE_DATA;
return NetworkReadPacket::MoreData;
}
bool NetworkConnection::SendPacket(NetworkPacket& packet)

View File

@@ -40,7 +40,7 @@ public:
NetworkConnection();
~NetworkConnection();
int32_t ReadPacket();
NetworkReadPacket ReadPacket();
void QueuePacket(NetworkPacket&& packet, bool front = false);
void QueuePacket(const NetworkPacket& packet, bool front = false)
{

View File

@@ -112,7 +112,7 @@ private:
size_t recievedBytes{};
std::unique_ptr<INetworkEndpoint> endpoint;
auto p = _lanListener->ReceiveData(buffer, sizeof(buffer) - 1, &recievedBytes, &endpoint);
if (p == NETWORK_READPACKET_SUCCESS)
if (p == NetworkReadPacket::Success)
{
std::string sender = endpoint->GetHostname();
log_verbose("Received %zu bytes from %s on LAN broadcast port", recievedBytes, sender.c_str());

View File

@@ -257,7 +257,7 @@ std::future<std::vector<ServerListEntry>> ServerList::FetchLocalServerListAsync(
size_t recievedLen{};
std::unique_ptr<INetworkEndpoint> endpoint;
auto p = udpSocket->ReceiveData(buffer, sizeof(buffer) - 1, &recievedLen, &endpoint);
if (p == NETWORK_READPACKET_SUCCESS)
if (p == NetworkReadPacket::Success)
{
auto sender = endpoint->GetHostname();
log_verbose("Received %zu bytes back from %s", recievedLen, sender.c_str());

View File

@@ -494,7 +494,7 @@ public:
return totalSent;
}
NETWORK_READPACKET ReceiveData(void* buffer, size_t size, size_t* sizeReceived) override
NetworkReadPacket ReceiveData(void* buffer, size_t size, size_t* sizeReceived) override
{
if (_status != SOCKET_STATUS_CONNECTED)
{
@@ -505,7 +505,7 @@ public:
if (readBytes == 0)
{
*sizeReceived = 0;
return NETWORK_READPACKET_DISCONNECTED;
return NetworkReadPacket::Disconnected;
}
else if (readBytes == SOCKET_ERROR)
{
@@ -524,17 +524,17 @@ public:
# endif // _WIN32
if (LAST_SOCKET_ERROR() != EWOULDBLOCK)
{
return NETWORK_READPACKET_DISCONNECTED;
return NetworkReadPacket::Disconnected;
}
else
{
return NETWORK_READPACKET_NO_DATA;
return NetworkReadPacket::NoData;
}
}
else
{
*sizeReceived = readBytes;
return NETWORK_READPACKET_SUCCESS;
return NetworkReadPacket::Success;
}
}
@@ -720,7 +720,7 @@ public:
return totalSent;
}
NETWORK_READPACKET ReceiveData(
NetworkReadPacket ReceiveData(
void* buffer, size_t size, size_t* sizeReceived, std::unique_ptr<INetworkEndpoint>* sender) override
{
sockaddr_in senderAddr{};
@@ -736,7 +736,7 @@ public:
if (readBytes <= 0)
{
*sizeReceived = 0;
return NETWORK_READPACKET_NO_DATA;
return NetworkReadPacket::NoData;
}
else
{
@@ -745,7 +745,7 @@ public:
{
*sender = std::make_unique<NetworkEndpoint>(reinterpret_cast<sockaddr*>(&senderAddr), senderAddrLen);
}
return NETWORK_READPACKET_SUCCESS;
return NetworkReadPacket::Success;
}
}

View File

@@ -24,12 +24,12 @@ enum SOCKET_STATUS
SOCKET_STATUS_LISTENING,
};
enum NETWORK_READPACKET
enum class NetworkReadPacket : int32_t
{
NETWORK_READPACKET_SUCCESS,
NETWORK_READPACKET_NO_DATA,
NETWORK_READPACKET_MORE_DATA,
NETWORK_READPACKET_DISCONNECTED
Success,
NoData,
MoreData,
Disconnected
};
/**
@@ -65,7 +65,7 @@ public:
virtual void ConnectAsync(const std::string& address, uint16_t port) abstract;
virtual size_t SendData(const void* buffer, size_t size) abstract;
virtual NETWORK_READPACKET ReceiveData(void* buffer, size_t size, size_t* sizeReceived) abstract;
virtual NetworkReadPacket ReceiveData(void* buffer, size_t size, size_t* sizeReceived) abstract;
virtual void Disconnect() abstract;
virtual void Close() abstract;
@@ -88,7 +88,7 @@ public:
virtual size_t SendData(const std::string& address, uint16_t port, const void* buffer, size_t size) abstract;
virtual size_t SendData(const INetworkEndpoint& destination, const void* buffer, size_t size) abstract;
virtual NETWORK_READPACKET ReceiveData(
virtual NetworkReadPacket ReceiveData(
void* buffer, size_t size, size_t* sizeReceived, std::unique_ptr<INetworkEndpoint>* sender) abstract;
virtual void Close() abstract;