bugfix: segregate send and delete list to client

This commit is contained in:
semenov
2025-11-20 13:04:36 +03:00
parent bd0bed926c
commit 7e27584c5a
6 changed files with 47 additions and 39 deletions

View File

@@ -241,6 +241,11 @@ QString UpdateController::getCurrentStreamingPath() const
return currentStreamingPath;
}
QList<FileData> UpdateController::prepareRealPathList(QList<FileData> fileData)
{
return *assetManager->prepareRealPathList(&fileData);
}
void UpdateController::setLocalFileData(QList<FileData> dataList)
{
serverDataList.append(dataList);
@@ -250,9 +255,8 @@ bool UpdateController::checkNeedUpdate(ClientHandler *handler)
{
QList<FileData> *forSend = new QList<FileData>;
QList<FileData> *forDelete = new QList<FileData>;
Client *client = handler->getClient();
fileSendList.clear();
fileDeleteList.clear();
sizeToSend = 0;
bool needUpdate = false;
@@ -282,45 +286,38 @@ bool UpdateController::checkNeedUpdate(ClientHandler *handler)
if(forSend->length() > 0) //формирование сообщения об обновлении
{
QString log;
log.append(" Client: " + handler->getClient()->getLogin());
log.append(" Client: " + client->getLogin());
log.append(" Need updates: ");
log.append(QString::number(forSend->length()));
log.append(" objects");
fileSendList = *forSend;
client->setFileSendList(*forSend);
Logger::instance().log(log);
//printFileList(*forSend);
//handler->sendMessageBlock(log);
needUpdate = true;
}
else
{
QString log;
log.append(" Client: " + handler->getClient()->getLogin());
log.append(" Client: " + client->getLogin());
log.append(" no update required");
Logger::instance().log(log);
//handler->sendMessageBlock(log);
}
if(forDelete->length() > 0){
QString log;
log.append(" Client: " + handler->getClient()->getLogin());
log.append(" Client: " + client->getLogin());
log.append(" Need delete: ");
log.append(QString::number(forDelete->length()));
log.append(" objects");
fileDeleteList = *forDelete;
client->setFileDeleteList(*forDelete);
Logger::instance().log(log);
//printFileList(*forDelete);
//handler->sendMessageBlock(log);
needUpdate = true;
}
else
{
QString log;
log.append(" Client: " + handler->getClient()->getLogin());
log.append(" Client: " + client->getLogin());
log.append(" no delete required");
Logger::instance().log(log);
@@ -329,6 +326,7 @@ bool UpdateController::checkNeedUpdate(ClientHandler *handler)
CalculateSizeToSend(*forSend);
handler->sendNeedUpdate(needUpdate,sizeToSend,forSend->length(),forDelete->length());
return needUpdate;
}
@@ -550,6 +548,8 @@ void UpdateController::xmlFileDataParse(QByteArray array)
}
}
StreamingVersionData* UpdateController::getCurrentVersion()
{
return assetManager->getCurrentVersionData();
@@ -566,18 +566,6 @@ void UpdateController::printFileList(QList<FileData> fileData)
}
}
QList<FileData> UpdateController::getFileDeleteList() const
{
return fileDeleteList;
}
QList<FileData> UpdateController::getFileSendList()
{
QList<FileData> *copy = new QList<FileData>(fileSendList);
QList<FileData> sendList = *assetManager->prepareRealPathList(copy);
return sendList;
}
QList<FileData> UpdateController::getClientDataList() const
{
return clientDataList;