mirror of
https://github.com/QuasarApp/Heart.git
synced 2025-04-26 09:44:37 +00:00
begin to integration new versions fields
This commit is contained in:
parent
c1ec94bd14
commit
441fe98a02
@ -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);
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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.
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
@ -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";
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user