mirror of
https://github.com/vcmi/vcmi.git
synced 2025-01-22 03:39:45 +02:00
Replaced some of pointers to CPack's with references
This commit is contained in:
parent
cc6d6b0d63
commit
c1c552d394
@ -853,7 +853,7 @@ void CServerHandler::onPacketReceived(const std::shared_ptr<INetworkConnection>
|
|||||||
if(getState() == EClientState::DISCONNECTING)
|
if(getState() == EClientState::DISCONNECTING)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
CPack * pack = logicConnection->retrievePack(message);
|
auto pack = logicConnection->retrievePack(message);
|
||||||
ServerHandlerCPackVisitor visitor(*this);
|
ServerHandlerCPackVisitor visitor(*this);
|
||||||
pack->visit(visitor);
|
pack->visit(visitor);
|
||||||
}
|
}
|
||||||
@ -945,7 +945,7 @@ void CServerHandler::visitForClient(CPackForClient & clientPack)
|
|||||||
void CServerHandler::sendLobbyPack(const CPackForLobby & pack) const
|
void CServerHandler::sendLobbyPack(const CPackForLobby & pack) const
|
||||||
{
|
{
|
||||||
if(getState() != EClientState::STARTING)
|
if(getState() != EClientState::STARTING)
|
||||||
logicConnection->sendPack(&pack);
|
logicConnection->sendPack(pack);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CServerHandler::inLobbyRoom() const
|
bool CServerHandler::inLobbyRoom() const
|
||||||
|
@ -362,8 +362,6 @@ void CClient::handlePack(CPackForClient * pack)
|
|||||||
logNetwork->trace("\tApplied on gs: %s", typeid(*pack).name());
|
logNetwork->trace("\tApplied on gs: %s", typeid(*pack).name());
|
||||||
pack->visit(afterVisitor);
|
pack->visit(afterVisitor);
|
||||||
logNetwork->trace("\tMade second apply on cl: %s", typeid(*pack).name());
|
logNetwork->trace("\tMade second apply on cl: %s", typeid(*pack).name());
|
||||||
|
|
||||||
delete pack;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int CClient::sendRequest(const CPackForServer * request, PlayerColor player)
|
int CClient::sendRequest(const CPackForServer * request, PlayerColor player)
|
||||||
@ -376,7 +374,7 @@ int CClient::sendRequest(const CPackForServer * request, PlayerColor player)
|
|||||||
waitingRequest.pushBack(requestID);
|
waitingRequest.pushBack(requestID);
|
||||||
request->requestID = requestID;
|
request->requestID = requestID;
|
||||||
request->player = player;
|
request->player = player;
|
||||||
CSH->logicConnection->sendPack(request);
|
CSH->logicConnection->sendPack(*request);
|
||||||
if(vstd::contains(playerint, player))
|
if(vstd::contains(playerint, player))
|
||||||
playerint[player]->requestSent(request, requestID);
|
playerint[player]->requestSent(request, requestID);
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@ CConnection::CConnection(std::weak_ptr<INetworkConnection> networkConnection)
|
|||||||
|
|
||||||
CConnection::~CConnection() = default;
|
CConnection::~CConnection() = default;
|
||||||
|
|
||||||
void CConnection::sendPack(const CPack * pack)
|
void CConnection::sendPack(const CPack & pack)
|
||||||
{
|
{
|
||||||
boost::mutex::scoped_lock lock(writeMutex);
|
boost::mutex::scoped_lock lock(writeMutex);
|
||||||
|
|
||||||
@ -78,18 +78,18 @@ void CConnection::sendPack(const CPack * pack)
|
|||||||
throw std::runtime_error("Attempt to send packet on a closed connection!");
|
throw std::runtime_error("Attempt to send packet on a closed connection!");
|
||||||
|
|
||||||
packWriter->buffer.clear();
|
packWriter->buffer.clear();
|
||||||
*serializer & pack;
|
(*serializer) & (&pack);
|
||||||
|
|
||||||
logNetwork->trace("Sending a pack of type %s", typeid(*pack).name());
|
logNetwork->trace("Sending a pack of type %s", typeid(pack).name());
|
||||||
|
|
||||||
connectionPtr->sendPacket(packWriter->buffer);
|
connectionPtr->sendPacket(packWriter->buffer);
|
||||||
packWriter->buffer.clear();
|
packWriter->buffer.clear();
|
||||||
serializer->savedPointers.clear();
|
serializer->savedPointers.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
CPack * CConnection::retrievePack(const std::vector<std::byte> & data)
|
std::unique_ptr<CPack> CConnection::retrievePack(const std::vector<std::byte> & data)
|
||||||
{
|
{
|
||||||
CPack * result;
|
std::unique_ptr<CPack> result;
|
||||||
|
|
||||||
packReader->buffer = &data;
|
packReader->buffer = &data;
|
||||||
packReader->position = 0;
|
packReader->position = 0;
|
||||||
@ -102,7 +102,7 @@ CPack * CConnection::retrievePack(const std::vector<std::byte> & data)
|
|||||||
if (packReader->position != data.size())
|
if (packReader->position != data.size())
|
||||||
throw std::runtime_error("Failed to retrieve pack! Not all data has been read!");
|
throw std::runtime_error("Failed to retrieve pack! Not all data has been read!");
|
||||||
|
|
||||||
logNetwork->trace("Received CPack of type %s", typeid(*result).name());
|
logNetwork->trace("Received CPack of type %s", typeid(result.get()).name());
|
||||||
deserializer->loadedPointers.clear();
|
deserializer->loadedPointers.clear();
|
||||||
deserializer->loadedSharedPointers.clear();
|
deserializer->loadedSharedPointers.clear();
|
||||||
return result;
|
return result;
|
||||||
|
@ -51,8 +51,8 @@ public:
|
|||||||
explicit CConnection(std::weak_ptr<INetworkConnection> networkConnection);
|
explicit CConnection(std::weak_ptr<INetworkConnection> networkConnection);
|
||||||
~CConnection();
|
~CConnection();
|
||||||
|
|
||||||
void sendPack(const CPack * pack);
|
void sendPack(const CPack & pack);
|
||||||
CPack * retrievePack(const std::vector<std::byte> & data);
|
std::unique_ptr<CPack> retrievePack(const std::vector<std::byte> & data);
|
||||||
|
|
||||||
void enterLobbyConnectionMode();
|
void enterLobbyConnectionMode();
|
||||||
void setCallback(IGameCallback * cb);
|
void setCallback(IGameCallback * cb);
|
||||||
|
@ -467,7 +467,7 @@ void CGameHandler::handleReceivedPack(CPackForServer * pack)
|
|||||||
applied.result = successfullyApplied;
|
applied.result = successfullyApplied;
|
||||||
applied.packType = CTypeList::getInstance().getTypeID(pack);
|
applied.packType = CTypeList::getInstance().getTypeID(pack);
|
||||||
applied.requestID = pack->requestID;
|
applied.requestID = pack->requestID;
|
||||||
pack->c->sendPack(&applied);
|
pack->c->sendPack(applied);
|
||||||
};
|
};
|
||||||
|
|
||||||
if(isBlockedByQueries(pack, pack->player))
|
if(isBlockedByQueries(pack, pack->player))
|
||||||
@ -1438,7 +1438,7 @@ void CGameHandler::sendToAllClients(CPackForClient * pack)
|
|||||||
{
|
{
|
||||||
logNetwork->trace("\tSending to all clients: %s", typeid(*pack).name());
|
logNetwork->trace("\tSending to all clients: %s", typeid(*pack).name());
|
||||||
for (auto c : lobby->activeConnections)
|
for (auto c : lobby->activeConnections)
|
||||||
c->sendPack(pack);
|
c->sendPack(*pack);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CGameHandler::sendAndApply(CPackForClient * pack)
|
void CGameHandler::sendAndApply(CPackForClient * pack)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user