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