mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-27 19:45:43 +03:00
ref: client filelist parser move to UpdateController
This commit is contained in:
6
DOCS/.obsidian/workspace.json
vendored
6
DOCS/.obsidian/workspace.json
vendored
@@ -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",
|
||||
|
||||
@@ -447,14 +447,12 @@ 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=
|
||||
PXX44AEfoFN0uozHE6ilaCAAA===
|
||||
```
|
||||
%%
|
||||
@@ -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*>;
|
||||
}
|
||||
|
||||
|
||||
@@ -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()
|
||||
{
|
||||
|
||||
|
||||
@@ -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();
|
||||
};
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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()
|
||||
{
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user