Forward validations and manifests in reporting mode

This commit is contained in:
Nathan Nichols
2021-08-18 18:55:20 -05:00
committed by Nik Bougalis
parent bdfafa0b58
commit d9d001dffd
6 changed files with 74 additions and 13 deletions

View File

@@ -449,6 +449,10 @@ public:
void
pubValidation(std::shared_ptr<STValidation> const& val) override;
void
forwardValidation(Json::Value const& jvObj) override;
void
forwardManifest(Json::Value const& jvObj) override;
void
forwardProposedTransaction(Json::Value const& jvObj) override;
void
@@ -2588,6 +2592,46 @@ NetworkOPsImp::forwardProposedTransaction(Json::Value const& jvObj)
forwardProposedAccountTransaction(jvObj);
}
void
NetworkOPsImp::forwardValidation(Json::Value const& jvObj)
{
std::lock_guard sl(mSubLock);
for (auto i = mStreamMaps[sValidations].begin();
i != mStreamMaps[sValidations].end();)
{
if (auto p = i->second.lock())
{
p->send(jvObj, true);
++i;
}
else
{
i = mStreamMaps[sValidations].erase(i);
}
}
}
void
NetworkOPsImp::forwardManifest(Json::Value const& jvObj)
{
std::lock_guard sl(mSubLock);
for (auto i = mStreamMaps[sManifests].begin();
i != mStreamMaps[sManifests].end();)
{
if (auto p = i->second.lock())
{
p->send(jvObj, true);
++i;
}
else
{
i = mStreamMaps[sManifests].erase(i);
}
}
}
static void
getAccounts(Json::Value const& jvObj, std::vector<AccountID>& accounts)
{