in src/dxapi/native/tickdb/http/tickloader_http.cpp [664:696]
void TickLoaderImpl::dispatchTypesSubscriptionChange(bool all, bool added, const std::vector<std::string> &types)
{
vector<SubscriptionListener *> listeners;
{
srw_read section(subscriptionListenersLock_);
for (auto i : subscriptionListeners_) {
listeners.push_back(i);
}
}
for (auto i : listeners) {
try {
all ?
(added ? i->allTypesAdded() : i->allTypesRemoved())
:
(added ? i->typesAdded(types) : i->typesRemoved(types));
}
catch (const std::exception &e) {
std::string errmsg;
format_string(&errmsg, LOGHDR ".dispatchTypesSubscriptionChange(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 ".dispatchTypesSubscriptionChange(all:%d, added:%d) ERROR: system exception!",
ID, (int)all, (int)added);
DXAPIIMPL_DISPATCH_LOG();
DXAPIIMPL_DISPATCH_THROW();
}
}
}