ref: client filelist parser move to UpdateController

This commit is contained in:
semenov
2025-01-14 11:47:52 +03:00
parent ce82fb32e5
commit 501fe6dc91
8 changed files with 136 additions and 138 deletions

View File

@@ -220,19 +220,19 @@
"active": "9608f84166966ca9",
"lastOpenFiles": [
"AssetManagerScheme.md",
"Алексей/DataParser scheme.md",
"Алексей/AssetManagerScheme.md",
"MainScheme.md",
"Как умеем принимать, как умеем отправлять!.md",
"Порядок сборки Unity билда под сервер.md",
"Образец отправки сообщения с маркером.md",
"Алексей/Board.md",
"Алексей/DataParser scheme.md",
"Алексей/ProcessingSystem scheme.md",
"MainScheme.md",
"Что умеем отправлять Server - Client QT.md",
"CLIENT SERVER.canvas",
"Алексей/Рефакторинг.md",
"Алексей/ТЕСТ-КЕЙСЫ.md",
"Алексей/Чек лист по переносу.md",
"Алексей/AssetManagerScheme.md",
"Без названия.md",
"Андрей/Безымянная Kanban-доска.md",
"Андрей/ВАЖНАЯ ЗАМЕТКА.md",

View File

@@ -447,14 +447,12 @@ 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=
PXX44AEfoFN0uozHE6ilaCAAA===
```
%%

View File

@@ -8,7 +8,7 @@ AssetsManager::AssetsManager(QObject *parent) : QObject(parent)
void AssetsManager::initialize(UpdateController* updateContoller,DataParser *dataParser)
{
this->updateController = updateContoller;
connect(this,&AssetsManager::sigSaveVersion,dataParser,&DataParser::saveVersionToFile);
connect(this,&AssetsManager::sigSaveVersion,updateContoller,&UpdateController::saveVersionToFile);
datas = new QList<StreamingVersionData*>;
}

View File

@@ -234,41 +234,6 @@ void DataParser::xmlParser(ClientHandler *client, QByteArray array)
}//while(!xmlReader.atEnd())
}
void DataParser::xmlFileDataParse(QByteArray array)
{
QXmlStreamReader xmlReader(array);
datas = new QList<FileData>;
xmlReader.readNext();
//Крутимся в цикле до тех пор, пока не достигнем конца документа
while(!xmlReader.atEnd())
{
//Проверяем, является ли элемент началом тега
if(xmlReader.isStartElement())
{
if(xmlReader.name() == "FileData")
{
FileData data;
foreach(const QXmlStreamAttribute &attr,xmlReader.attributes())
{
QString name = attr.name().toString();
QString value = attr.value().toString();
if(name == "Path")
data.path = value;
else if(name == "Hash")
data.hash = value;
}
datas->append(data);
}
}
xmlReader.readNext();
}
}
QByteArray DataParser::xmlAnswer(QList<SXmlAnswerTag> listTag, QString elemUp1, QString elemUp2)
{
try {
@@ -574,48 +539,7 @@ QByteArray DataParser::xmlAnswer_currentVersion()
return array;
}
void DataParser::createVersionListXmlAnswer(QList<StreamingVersionData *> version) //TODO: переименовать и перебросить в AssetManager
{
QList<SXmlAnswerTag> listTag;
foreach(StreamingVersionData* ver,version)
{
SAttribute attribute1 = {"Version", ver->getViewName()};
SAttribute attribute2 = {"Created", ver->getCreateData().toString()};
QList<SAttribute> listAttr = {attribute1, attribute2};
SXmlAnswerTag tag = {"VersionData", listAttr};
listTag.append(tag);
}
QFile file(versionListFile);
file.open(QIODevice::WriteOnly);
QXmlStreamWriter xmlWriter(&file);
xmlWriter.setAutoFormatting(true);
xmlWriter.writeStartDocument();
xmlWriter.writeStartElement("VersionList");
foreach(SXmlAnswerTag tag,listTag)
{
xmlWriter.writeStartElement(tag.elementName);
foreach(SAttribute attribute,tag.attr)
{
xmlWriter.writeAttribute(attribute.name,attribute.value);
}
xmlWriter.writeEndElement();
}
xmlWriter.writeEndElement();
xmlWriter.writeEndDocument();
file.close();
}
QByteArray DataParser::readTempFile() //TODO: переименовать и перебросить в AssetManager
QByteArray DataParser::readTempFile()
{
QByteArray array;
QFile fileR(tempFile);
@@ -633,40 +557,6 @@ QByteArray DataParser::readTempFile() //TODO: переименовать и п
return array;
}
void DataParser::saveVersionToFile(StreamingVersionData *streamingVersion) //TODO: переименовать и перебросить в AssetManager
{
QFile file(version);
file.open(QFile::WriteOnly);
QXmlStreamWriter xmlWriter(&file);
xmlWriter.setAutoFormatting(true);
xmlWriter.writeStartDocument();
xmlWriter.writeStartElement("VersionData");
xmlWriter.writeAttribute("Version",streamingVersion->getViewName());
xmlWriter.writeAttribute("Created",streamingVersion->getCreateData().toString());
xmlWriter.writeEndElement();
xmlWriter.writeEndDocument();
file.close();
}
DataInfo *DataParser::getCurrentDataInfo() //TODO: переименовать и перебросить в AssetManager
{
return dataInfo;
}
void DataParser::clearCurrentDataInfo() //TODO: переименовать и перебросить в AssetManager
{
delete dataInfo;
}
QList<FileData> *DataParser::getDatas() const //TODO: переименовать и перебросить в AssetManager
{
return datas;
}
DataParser::~DataParser()
{

View File

@@ -47,27 +47,17 @@ public:
QByteArray xmlAnswer_tasks(QStringList listTasks);
QByteArray xmlAnswer_currentVersion();
void createVersionListXmlAnswer(QList<StreamingVersionData*> version);
DataInfo *getCurrentDataInfo();
void clearCurrentDataInfo();
~DataParser();
QList<FileData> *getDatas() const;
signals:
void sigLogMessage(QString log);
public slots:
void saveVersionToFile(StreamingVersionData *streamingVersion);
private:
QMutex *mutex;
QList<FileData> *datas;
ProcessingSystem *processingSystem;
AssetsManager *assetsManager;
DataInfo *dataInfo;
QByteArray readTempFile();
};

View File

@@ -154,7 +154,7 @@ void RecognizeSystem::recognize()
if(client->getIsUnity())
{
DataInfo *currentFileData = dataParser->getCurrentDataInfo();
DataInfo *currentFileData = updateController->getCurrentDataInfo();
filePath = currentFileData->path;
filePath = Tools::createSharedPath(filePath);
@@ -209,7 +209,7 @@ void RecognizeSystem::recognize()
file.close();
filePath.clear();
dataParser->clearCurrentDataInfo();
updateController->clearCurrentDataInfo();
socket->waitForReadyRead(100);

View File

@@ -56,8 +56,8 @@ void UpdateController::compareFiles(ClientHandler* handler, QByteArray array)
mutex->lock();
loadHash();
clientDataList.clear();
dataParser->xmlFileDataParse(array);
clientDataList.append(*dataParser->getDatas());
xmlFileDataParse(array);
clientDataList.append(*datas);
checkNeedUpdate(handler);
mutex->unlock();
}
@@ -420,10 +420,70 @@ void UpdateController::calculateSharedHash()
}
dataParser->createVersionListXmlAnswer(*versionList);
createVersionListXmlAnswer(*versionList);
assetManager->setVersionList(versionList);
}
void UpdateController::createVersionListXmlAnswer(QList<StreamingVersionData *> version) //TODO: переименовать и перебросить в AssetManager
{
QList<SXmlAnswerTag> listTag;
foreach(StreamingVersionData* ver,version)
{
SAttribute attribute1 = {"Version", ver->getViewName()};
SAttribute attribute2 = {"Created", ver->getCreateData().toString()};
QList<SAttribute> listAttr = {attribute1, attribute2};
SXmlAnswerTag tag = {"VersionData", listAttr};
listTag.append(tag);
}
QFile file(versionListFile);
file.open(QIODevice::WriteOnly);
QXmlStreamWriter xmlWriter(&file);
xmlWriter.setAutoFormatting(true);
xmlWriter.writeStartDocument();
xmlWriter.writeStartElement("VersionList");
foreach(SXmlAnswerTag tag,listTag)
{
xmlWriter.writeStartElement(tag.elementName);
foreach(SAttribute attribute,tag.attr)
{
xmlWriter.writeAttribute(attribute.name,attribute.value);
}
xmlWriter.writeEndElement();
}
xmlWriter.writeEndElement();
xmlWriter.writeEndDocument();
file.close();
}
void UpdateController::saveVersionToFile(StreamingVersionData *streamingVersion) //TODO: переименовать и перебросить в AssetManager
{
QFile file(version);
file.open(QFile::WriteOnly);
QXmlStreamWriter xmlWriter(&file);
xmlWriter.setAutoFormatting(true);
xmlWriter.writeStartDocument();
xmlWriter.writeStartElement("VersionData");
xmlWriter.writeAttribute("Version",streamingVersion->getViewName());
xmlWriter.writeAttribute("Created",streamingVersion->getCreateData().toString());
xmlWriter.writeEndElement();
xmlWriter.writeEndDocument();
file.close();
}
void UpdateController::sendNewVersionList()
{
commonClientHandler->sendNewVersionListToAllClient();
@@ -434,6 +494,41 @@ bool UpdateController::checkDuplicate(QString versionName)
return assetManager->findDuplicate(versionName);
}
void UpdateController::xmlFileDataParse(QByteArray array)
{
QXmlStreamReader xmlReader(array);
datas = new QList<FileData>;
xmlReader.readNext();
//Крутимся в цикле до тех пор, пока не достигнем конца документа
while(!xmlReader.atEnd())
{
//Проверяем, является ли элемент началом тега
if(xmlReader.isStartElement())
{
if(xmlReader.name() == "FileData")
{
FileData data;
foreach(const QXmlStreamAttribute &attr,xmlReader.attributes())
{
QString name = attr.name().toString();
QString value = attr.value().toString();
if(name == "Path")
data.path = value;
else if(name == "Hash")
data.hash = value;
}
datas->append(data);
}
}
xmlReader.readNext();
}
}
void UpdateController::printFileList(QList<FileData> fileData)
{
QListIterator<FileData> iterator(fileData);
@@ -463,6 +558,21 @@ QList<FileData> UpdateController::getClientDataList() const
return clientDataList;
}
DataInfo *UpdateController::getCurrentDataInfo() //TODO: переименовать и перебросить в AssetManager
{
return dataInfo;
}
QList<FileData> *UpdateController::getDatas() const //TODO: переименовать и перебросить в AssetManager
{
return datas;
}
void UpdateController::clearCurrentDataInfo() //TODO: переименовать и перебросить в AssetManager
{
delete dataInfo;
}
UpdateController::~UpdateController()
{

View File

@@ -12,6 +12,7 @@
#include <Systems/dataparser.h>
#include <Data/typesDataServerClient.h>
#include <Data/StreamingVersionData.h>
class TCPServer;
class SendSystem;
@@ -47,14 +48,20 @@ public:
~UpdateController();
DataInfo *getCurrentDataInfo();
void clearCurrentDataInfo();
QList<FileData> *getDatas() const;
void createVersionListXmlAnswer(QList<StreamingVersionData *> version);
void saveVersionToFile(StreamingVersionData *streamingVersion);
void xmlFileDataParse(QByteArray array);
public slots:
void changeAssetVersion(QString versionName);
void createCopyVersion(QString versionName,QString newVersionName);
void deleteAssetVersion(QString versionName);
void setUpCurrentServerHash();
signals:
void sigLogMessage(QString message);
//void sigSendPackege(PacketType packetType);
private:
QList<FileData> clientDataList;
@@ -63,6 +70,9 @@ private:
QList<FileData> fileSendList;
QList<FileData> fileDeleteList;
QList<FileData> *datas;
DataInfo *dataInfo;
QString buildPath;
QString currentStreamingPath;
QString sharedDataPath;