void IPNDAgent::sendAnnoucement(const uint16_t &sn, std::list<dtn::net::DiscoveryServiceProvider*> &providers) { DiscoveryAnnouncement announcement(_version, dtn::core::BundleCore::local); // set sequencenumber announcement.setSequencenumber(sn); ibrcommon::MutexLock l(_interface_lock); for (std::set<ibrcommon::vinterface>::const_iterator it_iface = _interfaces.begin(); it_iface != _interfaces.end(); ++it_iface) { const ibrcommon::vinterface &iface = (*it_iface); // clear all services announcement.clearServices(); if (!_config.shortbeacon()) { // add services for (std::list<DiscoveryServiceProvider*>::iterator iter = providers.begin(); iter != providers.end(); ++iter) { DiscoveryServiceProvider &provider = (**iter); try { // update service information provider.update(iface, announcement); } catch (const dtn::net::DiscoveryServiceProvider::NoServiceHereException&) { } } } for (std::set<ibrcommon::vaddress>::iterator iter = _destinations.begin(); iter != _destinations.end(); ++iter) { send(announcement, iface, (*iter)); } } }
void WindowScriptingInterface::displayAnnouncement(const QString& message) { emit announcement(message); }