add functionality to clear session

This commit is contained in:
Nathan Nichols
2021-05-25 20:19:33 -05:00
parent e1ab2e7dee
commit 58413a7473
3 changed files with 25 additions and 17 deletions

View File

@@ -130,4 +130,24 @@ void
SubscriptionManager::unsubProposedTransactions(std::shared_ptr<session>& session)
{
streamSubscribers_[TransactionsProposed].erase(session);
}
void
SubscriptionManager::clearSession(std::shared_ptr<session> const& session)
{
for(auto& stream : streamSubscribers_)
stream.erase(session);
for(auto& [account, subscribers] : accountSubscribers_)
{
if (subscribers.find(session) != subscribers.end())
accountSubscribers_[account].erase(session);
}
for(auto& [account, subscribers] : accountProposedSubscribers_)
{
if (subscribers.find(session) != subscribers.end())
accountProposedSubscribers_[account].erase(session);
}
}