Classes | Public Member Functions | Protected Member Functions

dtn::routing::EpidemicRoutingExtension Class Reference

#include <EpidemicRoutingExtension.h>

Inherits dtn::routing::BaseRouter::ThreadedExtension.

Collaboration diagram for dtn::routing::EpidemicRoutingExtension:
Collaboration graph
[legend]

List of all members.

Classes

class  ExecutableTask
class  ExpireTask
class  ProcessBundleTask
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 ()

Detailed Description

Definition at line 32 of file EpidemicRoutingExtension.h.


Constructor & Destructor Documentation

dtn::routing::EpidemicRoutingExtension::EpidemicRoutingExtension (  ) 

Definition at line 44 of file EpidemicRoutingExtension.cpp.

References IBRCOMMON_LOGGER.

dtn::routing::EpidemicRoutingExtension::~EpidemicRoutingExtension (  )  [virtual]

Definition at line 50 of file EpidemicRoutingExtension.cpp.

References ibrcommon::JoinableThread::join(), and ibrcommon::JoinableThread::stop().

Here is the call graph for this function:


Member Function Documentation

bool dtn::routing::EpidemicRoutingExtension::__cancellation (  )  [protected, virtual]

Reimplemented from ibrcommon::Thread.

Definition at line 129 of file EpidemicRoutingExtension.cpp.

References ibrcommon::Queue< T >::abort().

Here is the call graph for this function:

void dtn::routing::EpidemicRoutingExtension::notify ( const dtn::core::Event evt  )  [virtual]
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 received bundle

Implements ibrcommon::Thread.

Definition at line 135 of file EpidemicRoutingExtension.cpp.

References dtn::routing::NeighborDatabase::NeighborEntry::acquireFilterRequest(), dtn::routing::BundleSummary::add(), dtn::data::MetaBundle::destination, dtn::data::BundleList::expire(), dtn::core::BundleStorage::get(), dtn::routing::NeighborDatabase::get(), dtn::core::Node::getEID(), dtn::core::BundleCore::getInstance(), dtn::core::BundleCore::getNeighbors(), dtn::data::EID::getNodeEID(), ibrcommon::Queue< T >::getnpop(), IBRCOMMON_LOGGER_DEBUG, dtn::core::BundleCore::local, ibrcommon::Queue< T >::push(), dtn::core::BundleStorage::remove(), dtn::data::BundleID::source, dtn::routing::BaseRouter::Extension::transferTo(), ibrcommon::Exception::what(), and ibrcommon::Thread::yield().

Here is the call graph for this function:

void dtn::routing::EpidemicRoutingExtension::stopExtension (  )  [virtual]

Implements dtn::routing::BaseRouter::ThreadedExtension.

Definition at line 56 of file EpidemicRoutingExtension.cpp.

References ibrcommon::Queue< T >::abort().

Here is the call graph for this function:


The documentation for this class was generated from the following files: