bugfix: update without hot update

This commit is contained in:
semenov
2025-11-20 12:14:34 +03:00
parent 4829647e98
commit a2e64ecb68
14 changed files with 13161 additions and 13125 deletions

View File

@@ -146,7 +146,6 @@ void UpdateController::updateFilesOnServer(QList<FileData> *fileSendList){
}
calculateCommonHash();
sendSystem->sendPacketType(PacketType::TYPE_FINISH);
sendSystem->sendPacketType(PacketType::RECALCULATE_DOCS);
emit sigUpdateComplete(true);
}

View File

@@ -206,15 +206,8 @@ void RecognizeSystem::recognize(QTcpSocket *socket)
}
if (packetType ==PacketType::TYPE_FINISH) //для повторного создания хэша после загрузки
{
postProcessorSystem->calculateCommonHash();
emit sigLoadComplete();
packetType = PacketType::TYPE_NONE;
}
if(packetType == PacketType::TYPE_NEEDUPDATE){ //нужно обновление
if(packetType == PacketType::TYPE_NEEDUPDATE)
{ //нужно обновление
bool flag = false;
quint64 size = 0;
@@ -254,7 +247,7 @@ void RecognizeSystem::recognize(QTcpSocket *socket)
emit sigCheckUpdate();
}
if(packetType == PacketType::HASH_CALCULATE_START)
if(packetType == PacketType::RECALCULATE_HASH)
{
emit sigdRecalculateHashOnServerState();
}
@@ -269,10 +262,19 @@ void RecognizeSystem::recognize(QTcpSocket *socket)
emit sigAnimationActivated(false);
}
if(packetType == PacketType::TYPE_XMLANSWER_DOCS_CHANGED)
if (packetType == PacketType::TYPE_XMLANSWER_DOCS_CHANGED) //на случай общего обновления
{
emit sigSendPacketType(PacketType::GET_DOCS);
}
if (packetType == PacketType::UPDATE_FILE_COMPLETE)
{
postProcessorSystem->calculateCommonHash();
emit sigLoadComplete();
emit sigSendPacketType(PacketType::GET_DOCS);
packetType = PacketType::TYPE_NONE;
}
packetType = PacketType::TYPE_NONE;
}
}

View File

@@ -31,6 +31,9 @@ signals:
void sigCheckUpdate();
void sigdRecalculateHashOnServerState();
void sigSendPacketType(PacketType packetType);
void sigSendPacketTypeWithDelay(PacketType packetType,int delay);
void sigSendToInlineLog(QString message);
void sigCallUpdateList();
private:
VersionContainer *versionContainer;

View File

@@ -165,12 +165,47 @@ void SendSystem::sendPacketType(PacketType packetType)
stream << packetType;
}
void SendSystem::sendPacketTypeWithDelay(PacketType packetType,int delay)
{
QDataStream stream(socket);
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
socket->waitForReadyRead(delay);
stream << packetType;
}
void SendSystem::sendCheckHash()
{
QDataStream stream(socket);
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
QString fullPath = Tools::createSendFullPath(staticDataFolderName + hashFilename);
sendFileBlock(staticDataFolderName + hashFilename);
quint64 fileSize = 0;
int countSend = 0;
QFile file(fullPath); //Открываем файл для чтения
QFileInfo fileInfo(file);
fileSize = fileInfo.size();
stream << PacketType::SEND_HASH; //Отправляем тип блока
stream << fileSize;
socket->waitForReadyRead(20);
//socket->waitForBytesWritten();
if(file.open(QFile::ReadOnly)){
while(!file.atEnd()){
QByteArray data = file.read(readSize);
stream << data;
socket->waitForBytesWritten(20);
countSend++;
}
qDebug() << Tools::getTime() << "count end Final: " << countSend;
}
file.close();
countSend = 0;
socket->waitForReadyRead(2000);
stream << PacketType::TYPE_CHECK_VERSION;

View File

@@ -25,6 +25,7 @@ public:
void sendCheckHash();
void sendPacketType(PacketType packetType);
~SendSystem(){};
void sendPacketTypeWithDelay(PacketType packetType, int delay);
signals:
void sigSend();
QByteArray sigGetXmlAnswer(QString);

View File

@@ -39,13 +39,14 @@ enum PacketType{
TYPE_COMMAND = 3,
TYPE_FOLDER = 4,
TYPE_DELETE = 5,
TYPE_FINISH = 6,
UPDATE_FILE_COMPLETE = 6,
TYPE_NEEDUPDATE = 7,
TYPE_XMLANSWER = 8,
TYPE_QT = 9,
TYPE_DISABLE = 11,
TYPE_UPDATE = 12,
TYPE_CHECK_VERSION = 13,
UPDATE_DOCS_COMPLETE = 22,
TYPE_XMLANSWER_DOCS_CHANGED = 132,
@@ -55,9 +56,10 @@ enum PacketType{
DELETE_DATA_VERSION = 153,
BUSY = 154,
FREE = 155,
HASH_CALCULATE_START = 156,
RECALCULATE_HASH = 156,
RECALCULATE_DOCS = 157,
GET_DOCS = 158
GET_DOCS = 158,
SEND_HASH = 159
};