Moved sendPacket from NetworkManager to STKHost.

This commit is contained in:
hiker 2015-10-26 18:26:53 +11:00
parent 51d39879b4
commit 334780b5d7
6 changed files with 20 additions and 15 deletions

View File

@ -175,13 +175,6 @@ void ClientNetworkManager::reset()
}
void ClientNetworkManager::sendPacket(const NetworkString& data, bool reliable)
{
if (STKHost::get()->getPeerCount() > 1)
Log::warn("ClientNetworkManager", "Ambiguous send of data.\n");
STKHost::get()->getPeers()[0]->sendPacket(data, reliable);
}
STKPeer* ClientNetworkManager::getPeer()
{
return STKHost::get()->getPeers()[0];

View File

@ -47,11 +47,6 @@ class ClientNetworkManager : public NetworkManager
virtual void run();
/*! \brief Resets the network socket. */
virtual void reset();
/*! \brief Sends a packet to the server.
* \param data : The network 8-bit string to send.
* \param reliable : If set to true, ENet will ensure that the packet is received.
*/
virtual void sendPacket(const NetworkString& data, bool reliable = true);
/*! \brief Get the peer (the server)
* \return The peer with whom we're connected (if it exists). NULL elseway.

View File

@ -60,8 +60,6 @@ private:
friend class AbstractSingleton<NetworkManager>;
public:
virtual void run();
virtual void sendPacket(const NetworkString& data,
bool reliable = true) = 0;
// Game related functions
virtual bool isServer() = 0;

View File

@ -176,7 +176,7 @@ void ProtocolManager::sendMessage(Protocol* sender, const NetworkString& message
NetworkString new_message(1+message.size());
new_message.ai8(sender->getProtocolType()); // add one byte to add protocol type
new_message += message;
NetworkManager::getInstance()->sendPacket(new_message, reliable);
STKHost::get()->sendMessage(new_message, reliable);
} // sendMessage
// ----------------------------------------------------------------------------

View File

@ -179,6 +179,24 @@ bool STKHost::connect(const TransportAddress& address)
return true;
} // connect
// --------------------------------------------------------------------
/** Sends a message to the server if this is a client, or to all
* clients if this is the server.
* \param data Message to sent.
* \param reliable If the message is to be sent reliable.
*/
void STKHost::sendMessage(const NetworkString& data, bool reliable)
{
if (m_is_server)
broadcastPacket(data, reliable);
else
{
if (m_peers.size() > 1)
Log::warn("ClientNetworkManager", "Ambiguous send of data.");
m_peers[0]->sendPacket(data, reliable);
}
} // sendMessage
// ----------------------------------------------------------------------------
/** \brief Starts the listening of events from ENet.
* Starts a thread for receiveData that updates it as often as possible.

View File

@ -129,6 +129,7 @@ public:
void reset();
bool connect(const TransportAddress& peer);
void sendMessage(const NetworkString& data, bool reliable = true);
void sendPacketExcept(STKPeer* peer,
const NetworkString& data,
bool reliable = true);