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

@@ -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;