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

@@ -16,6 +16,7 @@ kanban-plugin: board
- [ ] Отменить изменения работает некрасиво - [ ] Отменить изменения работает некрасиво
- [ ] BUSY не меняет иконку блокировки - [ ] BUSY не меняет иконку блокировки
- [ ] не работают ссылки при выгрузке в QT Client - [ ] не работают ссылки при выгрузке в QT Client
- [ ] починить поведение окон при включенном обновлении у 2х пользователей
## feature client Unity ## feature client Unity

View File

@@ -19,7 +19,7 @@ public:
this->port = port; this->port = port;
this->fullName = "Name: " + name + " IP: " + address + " port : " + port + " login: " + login; this->fullName = "Name: " + name + " IP: " + address + " port : " + port + " login: " + login;
}; };
~Client(); ~Client(){};
public: public:
QString getFullName() QString getFullName()
@@ -127,6 +127,28 @@ public:
clientHash = value; clientHash = value;
} }
QList<FileData> getFileSendList() const
{
return fileSendList;
}
void setFileSendList(const QList<FileData> &value)
{
fileSendList = value;
}
QList<FileData> getFileDeleteList() const
{
return fileDeleteList;
}
void setFileDeleteList(const QList<FileData> &value)
{
fileDeleteList = value;
}
private: private:
QString name; QString name;
QString address; QString address;
@@ -141,6 +163,10 @@ private:
TypeClientAutorization typeClient; TypeClientAutorization typeClient;
UserType userType; UserType userType;
QByteArray clientHash; QByteArray clientHash;
QList<FileData> fileSendList;
QList<FileData> fileDeleteList;
}; };
#endif // CLIENT_H #endif // CLIENT_H

View File

@@ -108,9 +108,9 @@ void RecognizeSystem::recognize()
if (packetType == PacketType::TYPE_UPDATE) if (packetType == PacketType::TYPE_UPDATE)
{ {
QList<FileData> sendList = updateController->prepareRealPathList(client->getFileSendList());
sendSystem->updateFiles(updateController->getFileSendList(), sendSystem->updateFiles(sendList,
updateController->getFileDeleteList()); client->getFileDeleteList());
qDebug()<< "Call update no docs"; qDebug()<< "Call update no docs";
packetType = PacketType::TYPE_NONE; packetType = PacketType::TYPE_NONE;

View File

@@ -311,8 +311,6 @@ void SendSystem::updateFiles(QList<FileData> fileSendList, QList<FileData> delet
return; return;
} }
} }
//sendPacketType(PacketType::UPDATE_FILES_COMPLETE);
sendPacketType(PacketType::UPDATE_FILES_COMPLETE); sendPacketType(PacketType::UPDATE_FILES_COMPLETE);
} }
@@ -335,7 +333,6 @@ void SendSystem::sendStop()
void SendSystem::sendDocs(QString docsPath) void SendSystem::sendDocs(QString docsPath)
{ {
sendFileBlock(docsPath); sendFileBlock(docsPath);
//sendPacketType(PacketType::UPDATE_DOCS_COMPLETE);
} }
bool SendSystem::getIsSendStopped() const bool SendSystem::getIsSendStopped() const

View File

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

View File

@@ -43,10 +43,9 @@ public:
QByteArray getLocalHash(); QByteArray getLocalHash();
QString getCurrentVersionName(); QString getCurrentVersionName();
QList<FileData> getFileSendList();
QList<FileData> getClientDataList() const; QList<FileData> getClientDataList() const;
QList<FileData> getFileDeleteList() const;
QString getCurrentStreamingPath() const; QString getCurrentStreamingPath() const;
QList<FileData> prepareRealPathList(QList<FileData> fileData);
~UpdateController(); ~UpdateController();
@@ -74,9 +73,6 @@ private:
QList<FileData> clientDataList; QList<FileData> clientDataList;
QList<FileData> serverDataList; QList<FileData> serverDataList;
QList<FileData> fileSendList;
QList<FileData> fileDeleteList;
DataInfo *dataInfo; DataInfo *dataInfo;
QString buildPath; QString buildPath;