begin to integration new versions fields

This commit is contained in:
Andrei Yankovich 2023-05-23 10:55:03 +02:00
parent c1ec94bd14
commit 441fe98a02
8 changed files with 52 additions and 10 deletions

View File

@ -135,6 +135,7 @@ bool BigDataParser::processPart(const QSharedPointer<PKG::BigDataPart> &part,
}
auto package = node()->genPackage(localPool.header->getCommand(),
localPool.header->pkgVersion(),
sender);
if (!package)
return false;
@ -209,6 +210,7 @@ bool BigDataParser::sendBigDataPackage(const PKG::AbstractData *data,
hdr->setPackagesCount(std::ceil(rawData.size() / static_cast<double>(sizeLimit)));
hdr->setPackageId(rand());
hdr->setCommand(data->cmd());
hdr->setPkgVersion(data->ver());
insertNewBigData(hdr);

View File

@ -710,9 +710,11 @@ ParserResult AbstractNode::parsePackage(const QSharedPointer<AbstractData> &pkg,
return _apiVersionParser->parsePackage(pkg, pkgHeader, sender);
}
QSharedPointer<AbstractData> AbstractNode::genPackage(unsigned short cmd, AbstractNodeInfo *sender) const {
QSharedPointer<AbstractData> AbstractNode::genPackage(unsigned short cmd,
unsigned short ver,
AbstractNodeInfo *sender) const {
if (_apiVersionParser)
return _apiVersionParser->searchPackage(cmd, sender);
return _apiVersionParser->searchPackage(cmd, ver, sender);
return nullptr;
}

View File

@ -762,8 +762,17 @@ private:
const Header &pkgHeader,
AbstractNodeInfo *sender);
/**
* @brief genPackage This method generate a package from the command and version
* @param cmd this is command of the package.
* @param ver this is version of the package
* @param sender This is sender that sent this requests.
* @return empty package object.
*/
QSharedPointer<PKG::AbstractData>
genPackage(unsigned short cmd, AbstractNodeInfo *sender) const;
genPackage(unsigned short cmd,
unsigned short ver,
AbstractNodeInfo *sender) const;
/**
@note just disaable listen method in the node objects.

View File

@ -82,6 +82,7 @@ QString APIVersionParser::toString() const {
QSharedPointer<PKG::AbstractData>
APIVersionParser::searchPackage(unsigned short cmd,
unsigned short ver,
AbstractNodeInfo *sender) const {
if (!sender)
return nullptr;
@ -106,7 +107,7 @@ APIVersionParser::searchPackage(unsigned short cmd,
continue;
}
if (auto package = parser->genPackage(cmd))
if (auto package = parser->genPackage(cmd, ver))
return package;
}

View File

@ -44,11 +44,14 @@ public:
* @brief searchPackage This method search package recursive in all registered pararsers. Searching will be in compatibility versions.
* Before search methd choose compatibly verson.
* @param cmd This is command for that shold be create pacakge object.
* @param ver This is version for that shold be create pacakge object.
* @param sender This is node that sent @a the cmd.
* @return Package generated from cmd.
*/
QSharedPointer<PKG::AbstractData>
searchPackage(unsigned short cmd, AbstractNodeInfo *sender) const;
searchPackage(unsigned short cmd,
unsigned short ver,
AbstractNodeInfo *sender) const;
/**
* @brief getSelectedApiParser This method return apiParser for selected node

View File

@ -69,10 +69,12 @@ void iParser::initSupportedCommands() {}
QString iParser::toString() const {
QString message = parserId() + " supports next commands:\n";
for (const auto& versionsMap: _registeredTypes) {
for (auto it = versionsMap.keyBegin(); it != versionsMap.keyEnd(); ++it) {
auto pkg = genPackage(*it);
message += pkg->cmdString() + ":v" + pkg->ver() + " - " + QString::number(*it) + "\n";
for (auto versionsMap = _registeredTypes.begin(); versionsMap != _registeredTypes.end(); ++versionsMap) {
auto cmd = versionsMap.key();
auto versions = versionsMap.value();
for (auto it = versions.begin(); it != versions.end(); ++it) {
auto pkg = genPackage(cmd, it.key());
message += pkg->cmdString() + "-" + QString::number(pkg->cmd()) + ":v" + QString::number(it.key()) + "\n";
}
}

View File

@ -39,6 +39,7 @@ QDataStream &BigDataHeader::fromStream(QDataStream &stream) {
stream >> packagesCount;
stream >> _command;
stream >> _version;
return stream;
}
@ -48,10 +49,19 @@ QDataStream &BigDataHeader::toStream(QDataStream &stream) const {
stream << packagesCount;
stream << _command;
stream << _version;
return stream;
}
unsigned short BigDataHeader::pkgVersion() const {
return _version;
}
void BigDataHeader::setPkgVersion(unsigned short newVersion) {
_version = newVersion;
}
unsigned short BigDataHeader::getCommand() const {
return _command;
}

View File

@ -60,13 +60,26 @@ public:
*/
void setCommand(unsigned short newCommand);
/**
* @brief pkgVersion This is version of the moving big data package.
* @return version of the moving big data package.
*/
unsigned short pkgVersion() const;
/**
* @brief setPkgVersion This method sets new version of bid data package.
* @param newVersion This is new version
*/
void setPkgVersion(unsigned short newVersion);
protected:
QDataStream &fromStream(QDataStream &stream) override;
QDataStream &toStream(QDataStream &stream) const override;
private:
int packagesCount;
unsigned short _command;
unsigned short _command = 0;
unsigned short _version = 0;
};
}
}