Add INetworDriver full API
This commit is contained in:
@@ -8,6 +8,16 @@ public:
|
||||
virtual void Initialize(const NetworkConfig& config) = 0;
|
||||
virtual void Dispose() = 0;
|
||||
|
||||
virtual void Listen() = 0;
|
||||
virtual void SendMessage(const NetworkMessage* message, void* targets) = 0; // TODO
|
||||
virtual bool Listen() = 0;
|
||||
virtual void Connect() = 0;
|
||||
virtual void Disconnect() = 0;
|
||||
virtual void Disconnect(const NetworkConnection& connection) = 0;
|
||||
|
||||
virtual bool PopEvent(NetworkEvent* event);
|
||||
|
||||
virtual void SendMessage(NetworkChannelType channelType, const NetworkMessage& message, Array<NetworkConnection, HeapAllocation> targets) = 0;
|
||||
|
||||
// TODO: Stats API
|
||||
// TODO: Simulation API
|
||||
|
||||
};
|
||||
|
||||
@@ -54,36 +54,54 @@ void NetworkManager::Shutdown()
|
||||
|
||||
bool NetworkManager::Listen()
|
||||
{
|
||||
// TODO
|
||||
return false;
|
||||
ASSERT(NetworkDriver != nullptr);
|
||||
return NetworkDriver->Listen();
|
||||
}
|
||||
|
||||
void NetworkManager::Connect()
|
||||
{
|
||||
// TODO
|
||||
ASSERT(NetworkDriver != nullptr);
|
||||
// TODO: Assert address/endpoint
|
||||
NetworkDriver->Connect();
|
||||
}
|
||||
|
||||
void NetworkManager::Disconnect()
|
||||
{
|
||||
// TODO
|
||||
ASSERT(NetworkDriver != nullptr);
|
||||
NetworkDriver->Disconnect();
|
||||
}
|
||||
|
||||
void NetworkManager::Disconnect(const NetworkConnection& connection)
|
||||
{
|
||||
ASSERT(NetworkDriver != nullptr);
|
||||
NetworkDriver->Disconnect(connection);
|
||||
}
|
||||
|
||||
bool NetworkManager::PopEvent(NetworkEvent* event)
|
||||
{
|
||||
ASSERT(NetworkDriver != nullptr);
|
||||
return NetworkDriver->PopEvent(event);
|
||||
}
|
||||
|
||||
NetworkMessage NetworkManager::BeginSendMessage()
|
||||
{
|
||||
ASSERT(NetworkDriver != nullptr);
|
||||
return CreateMessage();
|
||||
}
|
||||
|
||||
void NetworkManager::AbortSendMessage(const NetworkMessage& message)
|
||||
{
|
||||
ASSERT(NetworkDriver != nullptr);
|
||||
ASSERT(message.IsValid());
|
||||
RecycleMessage(message);
|
||||
}
|
||||
|
||||
bool NetworkManager::EndSendMessage(NetworkChannelType channelType, const NetworkMessage& message, Array<NetworkConnection> targets)
|
||||
bool NetworkManager::EndSendMessage(const NetworkChannelType channelType, const NetworkMessage& message, const Array<NetworkConnection> targets)
|
||||
{
|
||||
ASSERT(NetworkDriver != nullptr);
|
||||
ASSERT(message.IsValid());
|
||||
|
||||
// TODO: Send message
|
||||
NetworkDriver->SendMessage(channelType, message, targets);
|
||||
|
||||
RecycleMessage(message);
|
||||
return false;
|
||||
|
||||
@@ -16,6 +16,7 @@ public:
|
||||
API_FUNCTION() static bool Listen();
|
||||
API_FUNCTION() static void Connect();
|
||||
API_FUNCTION() static void Disconnect();
|
||||
API_FUNCTION() static void Disconnect(const NetworkConnection& connection);
|
||||
|
||||
API_FUNCTION() static bool PopEvent(NetworkEvent* event);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user