IBR-DTNSuite
0.8
|
#include <EpidemicRoutingExtension.h>
Classes | |
class | SearchNextBundleTask |
class | Task |
Public Member Functions | |
EpidemicRoutingExtension () | |
virtual | ~EpidemicRoutingExtension () |
void | notify (const dtn::core::Event *evt) |
virtual void | requestHandshake (const dtn::data::EID &, NodeHandshake &) const |
Protected Member Functions | |
void | run () |
void | __cancellation () |
Definition at line 32 of file EpidemicRoutingExtension.h.
Definition at line 43 of file EpidemicRoutingExtension.cpp.
References IBRCOMMON_LOGGER, and IBRCOMMON_LOGGER_ENDL.
Definition at line 49 of file EpidemicRoutingExtension.cpp.
References ibrcommon::JoinableThread::join(), and ibrcommon::JoinableThread::stop().
void dtn::routing::EpidemicRoutingExtension::__cancellation | ( | ) | [protected, virtual] |
Implements ibrcommon::Thread.
Definition at line 128 of file EpidemicRoutingExtension.cpp.
References ibrcommon::Queue< T >::abort().
void dtn::routing::EpidemicRoutingExtension::notify | ( | const dtn::core::Event * | evt | ) | [virtual] |
Implements dtn::routing::BaseRouter::ThreadedExtension.
Definition at line 60 of file EpidemicRoutingExtension.cpp.
References dtn::core::NodeEvent::getAction(), dtn::core::Node::getEID(), dtn::core::BundleCore::getInstance(), dtn::core::BundleCore::getNeighbors(), dtn::core::NodeEvent::getNode(), dtn::net::TransferCompletedEvent::getPeer(), dtn::net::TransferAbortedEvent::getPeer(), dtn::routing::NodeHandshakeEvent::HANDSHAKE_COMPLETED, dtn::routing::NodeHandshakeEvent::HANDSHAKE_UPDATED, dtn::core::NODE_AVAILABLE, dtn::routing::NodeHandshakeEvent::peer, ibrcommon::Queue< T >::push(), and dtn::routing::NodeHandshakeEvent::state.
void dtn::routing::EpidemicRoutingExtension::requestHandshake | ( | const dtn::data::EID & | , |
NodeHandshake & | request | ||
) | const [virtual] |
Reimplemented from dtn::routing::BaseRouter::Extension.
Definition at line 55 of file EpidemicRoutingExtension.cpp.
References dtn::routing::NodeHandshake::addRequest(), and dtn::routing::BloomFilterSummaryVector::identifier.
void dtn::routing::EpidemicRoutingExtension::run | ( | ) | [protected, virtual] |
Abstract interface for thread context run method.
SearchNextBundleTask triggers a search for a bundle to transfer to another host. This Task is generated by TransferCompleted, TransferAborted and node events.
Implements ibrcommon::Thread.
Definition at line 133 of file EpidemicRoutingExtension.cpp.
References dtn::data::MetaBundle::destination, dtn::data::PrimaryBlock::DESTINATION_IS_SINGLETON, dtn::data::MetaBundle::get(), dtn::storage::BundleStorage::get(), dtn::routing::NeighborDatabase::get(), dtn::data::EID::getNode(), ibrcommon::Queue< T >::getnpop(), dtn::data::MetaBundle::hopcount, IBRCOMMON_LOGGER_DEBUG, IBRCOMMON_LOGGER_ENDL, dtn::routing::BaseRouter::Extension::isRouting(), dtn::core::BundleCore::local, dtn::data::BundleID::source, dtn::routing::BaseRouter::Extension::transferTo(), ibrcommon::Exception::what(), and ibrcommon::Thread::yield().