in src/dxapi/native/tickdb/http/tickloader_http.cpp [699:731]
void TickLoaderImpl::dispatchEntitiesSubscriptionChange(bool all, bool added, const std::vector<std::string> &entities)
{
vector<SubscriptionListener *> listeners;
{
srw_read section(subscriptionListenersLock_);
for (auto i : subscriptionListeners_) {
listeners.push_back(i);
}
}
for (auto i : listeners) {
try {
all ?
(added ? i->allEnititesAdded() : i->allEnititesRemoved())
:
(added ? i->entitiesAdded(entities) : i->entitiesRemoved(entities));
}
catch (const std::exception &e) {
std::string errmsg;
format_string(&errmsg, LOGHDR ".dispatchEntitiesSubscriptionChange(all:%d, added:%d) ERROR: std::exception: %s",
ID, (int)all, (int)added, e.what());
DXAPIIMPL_DISPATCH_LOG();
DXAPIIMPL_DISPATCH_THROW();
}
catch (...) {
std::string errmsg;
format_string(&errmsg, LOGHDR ".dispatchEntitiesSubscriptionChange(all:%d, added:%d) ERROR: system exception!",
ID, (int)all, (int)added);
DXAPIIMPL_DISPATCH_LOG();
DXAPIIMPL_DISPATCH_THROW();
}
}
}