mirror of
https://github.com/QuasarApp/Heart.git
synced 2025-05-08 15:39:42 +00:00
some fixes
This commit is contained in:
parent
fcedec5039
commit
ad2fec5f2e
Heart
AbstractSpace
DataBaseSpace
NetworkSpace
@ -58,12 +58,12 @@ void AbstractNode::stop() {
|
||||
i->disconnect();
|
||||
}
|
||||
|
||||
for (auto it: _workers) {
|
||||
for (auto it: qAsConst(_workers)) {
|
||||
if (!it->isFinished())
|
||||
it->cancel();
|
||||
}
|
||||
|
||||
for (auto it: _receiveData) {
|
||||
for (auto it: qAsConst(_receiveData)) {
|
||||
delete it;
|
||||
}
|
||||
_receiveData.clear();
|
||||
@ -464,8 +464,7 @@ bool AbstractNode::sendData(const AbstractData *resp,
|
||||
auto client = getInfoPtr(addere);
|
||||
|
||||
if (!client) {
|
||||
QuasarAppUtils::Params::log("Response not sent because client == null",
|
||||
QuasarAppUtils::Error);
|
||||
QuasarAppUtils::Params::log("Response not sent because client == null");
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -498,19 +497,10 @@ bool AbstractNode::sendData(const AbstractData *resp,
|
||||
|
||||
void AbstractNode::badRequest(const HostAddress &address, const Header &req,
|
||||
const ErrorData &err, qint8 diff) {
|
||||
auto client = getInfoPtr(address);
|
||||
|
||||
if (!client) {
|
||||
|
||||
QuasarAppUtils::Params::log("Bad request detected, bud responce command not sendet!"
|
||||
" because client == null",
|
||||
QuasarAppUtils::Error);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!changeTrust(address, diff)) {
|
||||
|
||||
QuasarAppUtils::Params::log("Bad request detected, bud responce command not sendet!"
|
||||
QuasarAppUtils::Params::log("Bad request detected, bud response command not sent!"
|
||||
" because trust not changed",
|
||||
QuasarAppUtils::Error);
|
||||
|
||||
@ -523,7 +513,7 @@ void AbstractNode::badRequest(const HostAddress &address, const Header &req,
|
||||
}
|
||||
|
||||
QuasarAppUtils::Params::log("Bad request sendet to adderess: " +
|
||||
client->sct()->peerAddress().toString(),
|
||||
address.toString(),
|
||||
QuasarAppUtils::Info);
|
||||
}
|
||||
|
||||
|
@ -51,9 +51,9 @@ bool Async::asyncLauncher(const Async::Job &job, bool await) {
|
||||
|
||||
if (!await) {
|
||||
return QMetaObject::invokeMethod(this,
|
||||
"asyncHandler",
|
||||
Qt::QueuedConnection,
|
||||
Q_ARG(QH::Async::Job, job));
|
||||
"asyncHandler",
|
||||
Qt::QueuedConnection,
|
||||
Q_ARG(QH::Async::Job, job));
|
||||
}
|
||||
|
||||
bool workOfEnd = false, workResult = false;
|
||||
|
@ -13,7 +13,7 @@
|
||||
namespace QH {
|
||||
|
||||
Package::Package() {
|
||||
reset();
|
||||
Package::reset();
|
||||
}
|
||||
|
||||
bool Package::isValid() const {
|
||||
@ -37,7 +37,7 @@ bool Package::isValid() const {
|
||||
return false;
|
||||
}
|
||||
|
||||
return qHash(data) == hdr.hash;
|
||||
return static_cast<uint>(qHash(data)) == hdr.hash;
|
||||
}
|
||||
|
||||
void Package::reset() {
|
||||
|
@ -164,28 +164,6 @@ AbstractNodeInfo *DataBaseNode::createNodeInfo(QAbstractSocket *socket, const Ho
|
||||
return new BaseNodeInfo(socket, clientAddress);
|
||||
}
|
||||
|
||||
void DataBaseNode::badRequest(const HostAddress &address, const Header &req,
|
||||
const ErrorData &err, qint8 diff) {
|
||||
|
||||
if (!changeTrust(address, diff)) {
|
||||
|
||||
QuasarAppUtils::Params::log("Bad request detected, bud responce command not sendet!"
|
||||
" because trust not changed",
|
||||
QuasarAppUtils::Error);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
auto bad = BadRequest(err);
|
||||
if (!sendData(&bad, address, &req)) {
|
||||
return;
|
||||
}
|
||||
|
||||
QuasarAppUtils::Params::log("Bad request sendet to adderess: " +
|
||||
address.toString(),
|
||||
QuasarAppUtils::Info);
|
||||
}
|
||||
|
||||
bool DataBaseNode::changeTrust(const HostAddress &id, int diff) {
|
||||
auto info = dynamic_cast<const BaseNodeInfo*>(getInfoPtr(id));
|
||||
if (!info)
|
||||
|
@ -102,9 +102,6 @@ protected:
|
||||
|
||||
AbstractNodeInfo *createNodeInfo(QAbstractSocket *socket, const HostAddress *clientAddress) const override;
|
||||
|
||||
void badRequest(const HostAddress &address, const Header &req,
|
||||
const PKG::ErrorData& err, qint8 diff = REQUEST_ERROR) override;
|
||||
|
||||
bool changeTrust(const HostAddress &id, int diff) override;
|
||||
|
||||
/**
|
||||
|
@ -77,6 +77,7 @@ public:
|
||||
/**
|
||||
* @brief updateObject This method execute a update method of the saveObject and save all changes into database.
|
||||
* @note This method update object in the database only. If you try update not exists object then this method return false.
|
||||
* @warning This method do not guarantee that return false if The updated object is not exist.
|
||||
* @param saveObject This is object for updating.
|
||||
* @param wait This arguments force current thread wait for the function finishing.
|
||||
* @return true if objects is updated successful else false.
|
||||
|
@ -30,7 +30,7 @@ void ISqlDBCache::globalUpdateDataBase(SqlDBCasheWriteMode mode) {
|
||||
|
||||
if (static_cast<bool>(mode & SqlDBCasheWriteMode::On_New_Thread)) {
|
||||
|
||||
QtConcurrent::run([currentTime, this](){
|
||||
QtConcurrent::run([currentTime, this]() {
|
||||
globalUpdateDataBasePrivate(currentTime);
|
||||
});
|
||||
|
||||
@ -57,7 +57,7 @@ bool ISqlDBCache::updateObjectP(const QSharedPointer<DBObject> &saveObject,
|
||||
}
|
||||
|
||||
return _writer && _writer->isValid() &&
|
||||
_writer->updateObject(saveObject);
|
||||
_writer->updateObject(saveObject, wait);
|
||||
}
|
||||
|
||||
bool ISqlDBCache::deleteObjectP(const QSharedPointer<DBObject> &delObj,
|
||||
@ -91,7 +91,7 @@ bool ISqlDBCache::insertObjectP(const QSharedPointer<DBObject> &saveObject,
|
||||
}
|
||||
|
||||
return _writer && _writer->isValid() &&
|
||||
_writer->insertObject(saveObject);
|
||||
_writer->insertObject(saveObject, wait);
|
||||
}
|
||||
|
||||
qint64 ISqlDBCache::getLastUpdateTime() const {
|
||||
|
@ -184,8 +184,8 @@ void NetworkNode::thisNode(NodeObject& res) const {
|
||||
|
||||
QSet<NodeId> NetworkNode::myKnowAddresses() const {
|
||||
QSet<NodeId> res;
|
||||
|
||||
for (const AbstractNodeInfo *i : connections()) {
|
||||
const auto connects = connections();
|
||||
for (const AbstractNodeInfo *i : connects) {
|
||||
auto info = dynamic_cast<const NetworkNodeInfo*>(i);
|
||||
if (info && info->selfId().isValid()) {
|
||||
res += info->selfId();
|
||||
@ -384,17 +384,25 @@ bool NetworkNode::workWithNodeObjectData(const QSharedPointer<NodeObject> &node,
|
||||
|
||||
if (localObjec) {
|
||||
node->setTrust(std::min(node->trust(), localObjec->trust()));
|
||||
|
||||
if (!db()->updateObject(node)) {
|
||||
QuasarAppUtils::Params::log("Error on precessing of NodeObject updateObject is failed");
|
||||
return false;
|
||||
};
|
||||
} else {
|
||||
node->setTrust(0);
|
||||
|
||||
if (!db()->insertObject(node)) {
|
||||
QuasarAppUtils::Params::log("Error on precessing of NodeObject insertObject is failed");
|
||||
return false;
|
||||
};
|
||||
}
|
||||
|
||||
if (!db()->updateObject(node)) {
|
||||
return false;
|
||||
};
|
||||
|
||||
auto peerNodeInfo = dynamic_cast<NetworkNodeInfo*>(getInfoPtr(nodeInfo->networkAddress()));
|
||||
if (!peerNodeInfo)
|
||||
if (!peerNodeInfo) {
|
||||
QuasarAppUtils::Params::log("Error on precessing of NodeObject peerNodeInfo is null");
|
||||
return false;
|
||||
}
|
||||
|
||||
peerNodeInfo->setSelfId(NodeId(node->getId()));
|
||||
|
||||
@ -482,7 +490,12 @@ ParserResult NetworkNode::workWithTransportData(AbstractData *transportData,
|
||||
QuasarAppUtils::Error);
|
||||
}
|
||||
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
|
||||
routeFromSenderToHere.erase(routeFromSenderToHere.cbegin(), routeFromSenderToHere.cbegin() + index);
|
||||
#else
|
||||
routeFromSenderToHere.erase(routeFromSenderToHere.begin(), routeFromSenderToHere.begin() + index);
|
||||
#endif
|
||||
|
||||
// inversion route and update route to sender
|
||||
_router->updateRoute(cmd->senderID(),
|
||||
{routeFromSenderToHere.rbegin(), routeFromSenderToHere.rend()});
|
||||
@ -538,23 +551,22 @@ void NetworkNode::badRequest(const HostAddress &address, const Header &req,
|
||||
|
||||
void NetworkNode::badRequest(const NodeId &address, const Header &req,
|
||||
const ErrorData &err, qint8 diff) {
|
||||
|
||||
if (!changeTrust(address, diff)) {
|
||||
|
||||
QuasarAppUtils::Params::log("Bad request detected, bud responce command not sendet!"
|
||||
QuasarAppUtils::Params::log("Bad request detected, bud response command not sent!"
|
||||
" because trust not changed",
|
||||
QuasarAppUtils::Error);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
auto bad = BadNodeRequest(err);
|
||||
auto bad = BadRequest(err);
|
||||
if (!sendData(&bad, address, &req)) {
|
||||
return;
|
||||
}
|
||||
|
||||
QuasarAppUtils::Params::log("Bad request sendet to adderess: " +
|
||||
address.toBase64(),
|
||||
address.toString(),
|
||||
QuasarAppUtils::Info);
|
||||
}
|
||||
|
||||
|
@ -67,6 +67,10 @@ void NodeId::clear() {
|
||||
_data.clear();
|
||||
}
|
||||
|
||||
QString NodeId::toString() const {
|
||||
return toBase64();
|
||||
}
|
||||
|
||||
QDataStream &NodeId::fromStream(QDataStream &stream) {
|
||||
stream >> _data;
|
||||
return stream;
|
||||
|
@ -93,6 +93,12 @@ public:
|
||||
*/
|
||||
void clear();
|
||||
|
||||
/**
|
||||
* @brief toString This method return base64 stringValue of the address.
|
||||
* @return string value of address.
|
||||
*/
|
||||
QString toString() const;
|
||||
|
||||
QDataStream &fromStream(QDataStream &stream) override;
|
||||
QDataStream &toStream(QDataStream &stream) const override;
|
||||
|
||||
|
@ -31,7 +31,6 @@ protected:
|
||||
QDataStream &fromStream(QDataStream &stream) override;
|
||||
QDataStream &toStream(QDataStream &stream) const override;
|
||||
bool init() override;
|
||||
|
||||
};
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user