|
IBR-DTNSuite 0.6
|
#include <EpidemicRoutingExtension.h>


Classes | |
| class | EpidemicEndpoint |
| class | ExecutableTask |
| class | ExpireTask |
| class | ProcessEpidemicBundleTask |
| class | QuerySummaryVectorTask |
| class | SearchNextBundleTask |
| class | Task |
| class | TransferCompletedTask |
Public Member Functions | |
| EpidemicRoutingExtension () | |
| virtual | ~EpidemicRoutingExtension () |
| void | notify (const dtn::core::Event *evt) |
| virtual void | stopExtension () |
Protected Member Functions | |
| void | run () |
| bool | __cancellation () |
Definition at line 33 of file EpidemicRoutingExtension.h.
| dtn::routing::EpidemicRoutingExtension::EpidemicRoutingExtension | ( | ) |
Definition at line 44 of file EpidemicRoutingExtension.cpp.
References IBRCOMMON_LOGGER, and IBRCOMMON_LOGGER_ENDL.
| dtn::routing::EpidemicRoutingExtension::~EpidemicRoutingExtension | ( | ) | [virtual] |
Definition at line 51 of file EpidemicRoutingExtension.cpp.
References ibrcommon::JoinableThread::join(), and ibrcommon::JoinableThread::stop().

| bool dtn::routing::EpidemicRoutingExtension::__cancellation | ( | ) | [protected, virtual] |
Reimplemented from 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 62 of file EpidemicRoutingExtension.cpp.
References dtn::core::NodeEvent::getAction(), dtn::core::TimeEvent::getAction(), dtn::net::TransferCompletedEvent::getBundle(), dtn::core::Node::getEID(), dtn::core::BundleCore::getInstance(), dtn::core::NodeEvent::getNode(), dtn::net::TransferCompletedEvent::getPeer(), dtn::net::TransferAbortedEvent::getPeer(), dtn::core::TimeEvent::getTimestamp(), dtn::core::NODE_AVAILABLE, ibrcommon::Queue< T >::push(), and dtn::core::TIME_SECOND_TICK.

| void dtn::routing::EpidemicRoutingExtension::run | ( | ) | [protected, virtual] |
Abstract interface for thread context run method.
Execute an executable task
The ExpireTask take care of expired bundles in the purge vector
SearchNextBundleTask triggers a search for a bundle to transfer to another host. This Task is generated by TransferCompleted, TransferAborted and node events.
transfer was completed
process a epidemic bundle
Implements ibrcommon::Thread.
Definition at line 134 of file EpidemicRoutingExtension.cpp.
References dtn::routing::BundleSummary::add(), dtn::data::MetaBundle::destination, dtn::data::PrimaryBlock::DESTINATION_IS_SINGLETON, dtn::data::BundleList::expire(), dtn::core::BundleStorage::get(), dtn::routing::NeighborDatabase::get(), dtn::data::EID::getNode(), ibrcommon::Queue< T >::getnpop(), IBRCOMMON_LOGGER, IBRCOMMON_LOGGER_DEBUG, IBRCOMMON_LOGGER_ENDL, dtn::core::BundleCore::local, ibrcommon::Queue< T >::push(), dtn::data::BundleID::source, dtn::routing::BaseRouter::Extension::transferTo(), ibrcommon::Exception::what(), and ibrcommon::Thread::yield().

| void dtn::routing::EpidemicRoutingExtension::stopExtension | ( | ) | [virtual] |
Implements dtn::routing::BaseRouter::ThreadedExtension.
Definition at line 57 of file EpidemicRoutingExtension.cpp.
References ibrcommon::Queue< T >::abort().
