void EpidemicRoutingExtension::eventTransferSlotChanged(const dtn::data::EID &peer) throw () { ibrcommon::MutexLock pending_lock(_pending_mutex); if (_pending_peers.find(peer) != _pending_peers.end()) { _pending_peers.erase(peer); eventDataChanged(peer); } }
void FloodRoutingExtension::eventBundleQueued(const dtn::data::EID &peer, const dtn::data::MetaBundle &meta) throw () { // new bundles trigger a recheck for all neighbors const std::set<dtn::core::Node> nl = dtn::core::BundleCore::getInstance().getConnectionManager().getNeighbors(); for (std::set<dtn::core::Node>::const_iterator iter = nl.begin(); iter != nl.end(); ++iter) { const dtn::core::Node &n = (*iter); if (n.getEID() != peer) { // trigger all routing modules to search for bundles to forward eventDataChanged(n.getEID()); } } }
void EpidemicRoutingExtension::eventBundleQueued(const dtn::data::EID &peer, const dtn::data::MetaBundle &meta) throw () { // ignore the bundle if the scope is limited to local delivery if ((meta.hopcount <= 1) && (meta.get(dtn::data::PrimaryBlock::DESTINATION_IS_SINGLETON))) return; // new bundles trigger a recheck for all neighbors const std::set<dtn::core::Node> nl = dtn::core::BundleCore::getInstance().getConnectionManager().getNeighbors(); for (std::set<dtn::core::Node>::const_iterator iter = nl.begin(); iter != nl.end(); ++iter) { const dtn::core::Node &n = (*iter); if (n.getEID() != peer) { // trigger all routing modules to search for bundles to forward eventDataChanged(n.getEID()); } } }