IBR-DTNSuite
0.10
|
#include <ConnectionManager.h>
Classes | |
class | ShutdownException |
Public Types | |
typedef std::pair < dtn::core::Node::Protocol, ConvergenceLayer::stats_map > | stats_pair |
typedef std::list< stats_pair > | stats_list |
Public Member Functions | |
ConnectionManager () | |
virtual | ~ConnectionManager () |
void | add (const dtn::core::Node &n) |
void | remove (const dtn::core::Node &n) |
void | add (ConvergenceLayer *cl) |
void | remove (ConvergenceLayer *cl) |
void | add (P2PDialupExtension *ext) |
void | remove (P2PDialupExtension *ext) |
void | queue (const dtn::net::BundleTransfer &job) |
void | raiseEvent (const dtn::core::Event *evt) throw () |
void | open (const dtn::core::Node &node) throw (ibrcommon::Exception) |
const std::set< dtn::core::Node > | getNeighbors () |
bool | isNeighbor (const dtn::core::Node &) |
const dtn::core::Node | getNeighbor (const dtn::data::EID &eid) throw (NeighborNotAvailableException) |
void | updateNeighbor (const dtn::core::Node &n) |
virtual const std::string | getName () const |
stats_list | getStats () |
void | resetStats () |
![]() | |
virtual | ~EventReceiver ()=0 |
![]() | |
IntegratedComponent () | |
virtual | ~IntegratedComponent () |
virtual void | initialize () throw () |
virtual void | startup () throw () |
virtual void | terminate () throw () |
![]() | |
virtual | ~Component ()=0 |
Protected Member Functions | |
void | discovered (const dtn::core::Node &node) |
virtual void | componentUp () throw () |
virtual void | componentDown () throw () |
Definition at line 56 of file ConnectionManager.h.
typedef std::list<stats_pair> dtn::net::ConnectionManager::stats_list |
Definition at line 141 of file ConnectionManager.h.
typedef std::pair<dtn::core::Node::Protocol, ConvergenceLayer::stats_map> dtn::net::ConnectionManager::stats_pair |
Returns statistic data about all convergence-layers
Definition at line 140 of file ConnectionManager.h.
dtn::net::ConnectionManager::ConnectionManager | ( | ) |
Definition at line 57 of file ConnectionManager.cpp.
|
virtual |
Definition at line 62 of file ConnectionManager.cpp.
void dtn::net::ConnectionManager::add | ( | const dtn::core::Node & | n | ) |
Definition at line 181 of file ConnectionManager.cpp.
References dtn::core::Node::getEID(), IBRCOMMON_LOGGER_DEBUG_TAG, IBRCOMMON_LOGGER_ENDL, dtn::core::Node::isAnnounced(), dtn::core::Node::isAvailable(), dtn::core::NODE_AVAILABLE, dtn::core::NODE_DATA_ADDED, dtn::core::NodeEvent::raise(), dtn::core::Node::setAnnounced(), and dtn::core::Node::size().
Referenced by dtn::daemon::NativeDaemon::addConnection(), dtn::net::WifiP2PManager::componentUp(), discovered(), dtn_dht_handle_lookup_result(), dtn::net::P2PDialupExtension::fireConnected(), dtn::net::P2PDialupExtension::fireDiscovered(), dtn::net::P2PDialupExtension::P2PDialupExtension(), and dtn::api::ApiP2PExtensionHandler::setup().
void dtn::net::ConnectionManager::add | ( | ConvergenceLayer * | cl | ) |
Add a convergence layer
Definition at line 230 of file ConnectionManager.cpp.
void dtn::net::ConnectionManager::add | ( | P2PDialupExtension * | ext | ) |
Add a p2p dial-up extension
Definition at line 273 of file ConnectionManager.cpp.
|
protectedvirtual |
Implements dtn::daemon::IntegratedComponent.
Definition at line 82 of file ConnectionManager.cpp.
References dtn::core::EventDispatcher< E >::remove().
|
protectedvirtual |
Implements dtn::daemon::IntegratedComponent.
Definition at line 66 of file ConnectionManager.cpp.
References dtn::core::EventDispatcher< E >::add(), dtn::daemon::Configuration::Network::getAutoConnect(), dtn::daemon::Configuration::getInstance(), dtn::daemon::Configuration::getNetwork(), and dtn::utils::Clock::getTime().
|
protected |
trigger for periodical discovery of nodes
node |
Definition at line 285 of file ConnectionManager.cpp.
References add(), dtn::core::Node::getEID(), and dtn::core::BundleCore::local.
Referenced by updateNeighbor().
|
virtual |
Implements dtn::daemon::Component.
Definition at line 546 of file ConnectionManager.cpp.
const dtn::core::Node dtn::net::ConnectionManager::getNeighbor | ( | const dtn::data::EID & | eid | ) | throw (NeighborNotAvailableException) |
Get the neighbor with the given EID.
dtn::net::NeighborNotAvailableException | if the neighbor is not available. |
eid | The EID of the neighbor. |
Definition at line 521 of file ConnectionManager.cpp.
References dtn::core::Node::isAvailable().
Referenced by dtn::daemon::NativeDaemon::getInfo(), and dtn::daemon::NativeDaemon::initiateConnection().
const std::set< dtn::core::Node > dtn::net::ConnectionManager::getNeighbors | ( | ) |
get a set with all neighbors
Definition at line 506 of file ConnectionManager.cpp.
References dtn::core::Node::isAvailable().
Referenced by dtn::dht::DHTNameService::componentRun(), dtn::daemon::NativeDaemon::getNeighbors(), dtn::daemon::NativeDaemon::getStats(), dtn::routing::NeighborRoutingExtension::notify(), dtn::routing::FloodRoutingExtension::notify(), dtn::routing::EpidemicRoutingExtension::notify(), dtn::routing::ProphetRoutingExtension::notify(), dtn::daemon::DTNTPWorker::raiseEvent(), dtn::routing::BaseRouter::raiseEvent(), and dtn::api::ExtendedApiHandler::run().
ConnectionManager::stats_list dtn::net::ConnectionManager::getStats | ( | ) |
Definition at line 242 of file ConnectionManager.cpp.
References dtn::net::ConvergenceLayer::getDiscoveryProtocol(), and dtn::net::ConvergenceLayer::getStats().
Referenced by dtn::daemon::NativeDaemon::getStats().
bool dtn::net::ConnectionManager::isNeighbor | ( | const dtn::core::Node & | node | ) |
Checks if a node is already known as neighbor.
@return |
Definition at line 530 of file ConnectionManager.cpp.
References dtn::core::Node::getEID(), and dtn::core::Node::isAvailable().
Referenced by dtn_dht_handle_lookup_result().
void dtn::net::ConnectionManager::open | ( | const dtn::core::Node & | node | ) | throw (ibrcommon::Exception) |
Definition at line 388 of file ConnectionManager.cpp.
References dtn::net::ConvergenceLayer::getDiscoveryProtocol(), and dtn::net::ConvergenceLayer::open().
Referenced by dtn::daemon::NativeDaemon::initiateConnection().
void dtn::net::ConnectionManager::queue | ( | const dtn::net::BundleTransfer & | job | ) |
queue a bundle for transmission
Definition at line 475 of file ConnectionManager.cpp.
References dtn::net::BundleTransfer::getNeighbor(), dtn::data::EID::getString(), IBRCOMMON_LOGGER_DEBUG_TAG, IBRCOMMON_LOGGER_ENDL, and IBRCOMMON_LOGGER_LEVEL.
|
virtual |
method to receive new events from the EventSwitch
Implements dtn::core::EventReceiver.
Definition at line 104 of file ConnectionManager.cpp.
References dtn::net::ConnectionEvent::CONNECTION_DOWN, dtn::net::ConnectionEvent::CONNECTION_UP, dtn::core::Node::doConnectImmediately(), dtn::core::TimeEvent::getAction(), dtn::core::NodeEvent::getAction(), dtn::core::GlobalEvent::getAction(), dtn::core::NodeEvent::getNode(), dtn::net::ConnectionEvent::node, dtn::core::NODE_AVAILABLE, dtn::net::ConnectionEvent::state, and dtn::core::TIME_SECOND_TICK.
void dtn::net::ConnectionManager::remove | ( | const dtn::core::Node & | n | ) |
Definition at line 210 of file ConnectionManager.cpp.
References dtn::core::Node::getEID(), IBRCOMMON_LOGGER_DEBUG_TAG, IBRCOMMON_LOGGER_ENDL, dtn::core::NODE_DATA_REMOVED, dtn::core::NodeEvent::raise(), and dtn::core::Node::size().
Referenced by dtn::net::WifiP2PManager::componentDown(), dtn::api::ApiP2PExtensionHandler::finally(), dtn::net::P2PDialupExtension::fireDisconnected(), dtn::daemon::NativeDaemon::removeConnection(), and dtn::net::P2PDialupExtension::~P2PDialupExtension().
void dtn::net::ConnectionManager::remove | ( | ConvergenceLayer * | cl | ) |
Remove a convergence layer
Definition at line 236 of file ConnectionManager.cpp.
void dtn::net::ConnectionManager::remove | ( | P2PDialupExtension * | ext | ) |
Remove a p2p dial-up extension
Definition at line 279 of file ConnectionManager.cpp.
void dtn::net::ConnectionManager::resetStats | ( | ) |
Definition at line 263 of file ConnectionManager.cpp.
References dtn::net::ConvergenceLayer::resetStats().
void dtn::net::ConnectionManager::updateNeighbor | ( | const dtn::core::Node & | n | ) |
Add collected data about a neighbor to the neighbor database.
n | The node object of the neighbor |
Definition at line 541 of file ConnectionManager.cpp.
References discovered().
Referenced by dtn::net::DatagramConvergenceLayer::componentRun(), and dtn::net::DiscoveryAgent::received().