#include <BundleCore.h>

Public Member Functions | |
| void | setConvergenceLayer (ConvergenceLayer *cl) |
| ConvergenceLayer * | getConvergenceLayer () |
| CustodyManager & | getCustodyManager () |
| void | registerSubNode (string eid, AbstractWorker *node) |
| void | unregisterSubNode (string eid) |
| virtual void | received (const ConvergenceLayer &cl, const Bundle &b) |
| string | getLocalURI () const |
| void | raiseEvent (const Event *evt) |
| void | transmit (const Node &n, const Bundle &b) |
| void | deliver (const Bundle &b) |
Static Public Member Functions | |
| static BundleCore & | getInstance (string eid) |
| static BundleCore & | getInstance () |
Protected Member Functions | |
| void | tick () |
Private Member Functions | |
| BundleCore () | |
| virtual | ~BundleCore () |
| void | transmit (const Bundle &b) |
| BundleCore | operator= (const BundleCore &k) |
| void | setLocalEID (string eid) |
| void | transmitCustody (bool accept, const Bundle &b) |
| Bundle | createStatusReport (const Bundle &b, StatusReportType type, StatusReportReasonCode reason=NO_ADDITIONAL_INFORMATION) |
| Bundle | createCustodySignal (const Bundle &b, bool accepted) |
Private Attributes | |
| ConvergenceLayer * | m_clayer |
| map< string, AbstractWorker * > | m_worker |
| string | m_localeid |
| CustodyManager | m_cm |
| unsigned int | m_dtntime |
| dtn::core::BundleCore::BundleCore | ( | ) | [private] |
default constructor
References dtn::core::BundleEvent::className, dtn::core::CustodyEvent::className, dtn::core::RouteEvent::className, m_cm, dtn::core::EventSwitch::registerEventReceiver(), and dtn::utils::Service::start().
| dtn::core::BundleCore::~BundleCore | ( | ) | [private, virtual] |
| BundleCore & dtn::core::BundleCore::getInstance | ( | string | eid | ) | [static] |
References getInstance(), and setLocalEID().
| BundleCore & dtn::core::BundleCore::getInstance | ( | ) | [static] |
Referenced by dtn::core::AbstractWorker::AbstractWorker(), dtn::core::CustodyManager::acceptCustody(), getInstance(), dtn::core::BundleRouter::raiseEvent(), dtn::core::AbstractBundleStorage::raiseEvent(), dtn::core::CustodyManager::rejectCustody(), dtn::core::SimpleBundleStorage::storeFragment(), and dtn::core::AbstractWorker::~AbstractWorker().
| void dtn::core::BundleCore::setConvergenceLayer | ( | ConvergenceLayer * | cl | ) |
Set a ConvergenceLayer Object which is used to send and receive bundles. If you want to use more than only one ConvergenceLayer the MultiplexCongerenceLayer is needed.
| cl | A instance of a ConvergenceLayer class. |
References m_clayer, and dtn::core::ConvergenceLayer::setBundleReceiver().
Referenced by main().
| ConvergenceLayer * dtn::core::BundleCore::getConvergenceLayer | ( | ) |
Get the currently used ConvergenceLayer instance.
References m_clayer.
| CustodyManager & dtn::core::BundleCore::getCustodyManager | ( | ) |
get the current custody manager
References m_cm.
| void dtn::core::BundleCore::registerSubNode | ( | string | eid, | |
| AbstractWorker * | node | |||
| ) |
| void dtn::core::BundleCore::unregisterSubNode | ( | string | eid | ) |
| void dtn::core::BundleCore::received | ( | const ConvergenceLayer & | cl, | |
| const Bundle & | b | |||
| ) | [virtual] |
Implements dtn::core::BundleReceiver.
References dtn::core::BUNDLE_RECEIVED, dtn::core::EventSwitch::raiseEvent(), and dtn::core::ROUTE_PROCESS_BUNDLE.
| string dtn::core::BundleCore::getLocalURI | ( | ) | const |
References m_localeid.
Referenced by dtn::core::AbstractBundleStorage::raiseEvent(), dtn::daemon::TestApplication::reportIt(), and dtn::core::SimpleBundleStorage::storeFragment().
| void dtn::core::BundleCore::raiseEvent | ( | const Event * | evt | ) | [virtual] |
method to receive new events from the EventSwitch
Implements dtn::core::EventReceiver.
References dtn::core::BUNDLE_CUSTODY_ACCEPTED, dtn::core::BUNDLE_DELETED, dtn::core::BUNDLE_DELIVERED, dtn::core::BUNDLE_FORWARDED, dtn::core::BUNDLE_RECEIVED, createStatusReport(), dtn::data::CUSTODY_ACCEPTANCE_OF_BUNDLE, dtn::data::DELETION_OF_BUNDLE, dtn::data::DELIVERY_OF_BUNDLE, dtn::data::FORWARDING_OF_BUNDLE, dtn::core::BundleEvent::getAction(), dtn::core::BundleEvent::getBundle(), dtn::data::ProcessingFlags::getFlag(), dtn::data::Bundle::getPrimaryFlags(), dtn::core::BundleEvent::getReason(), dtn::data::RECEIPT_OF_BUNDLE, dtn::data::REQUEST_REPORT_OF_BUNDLE_DELETION, dtn::data::REQUEST_REPORT_OF_BUNDLE_DELIVERY, dtn::data::REQUEST_REPORT_OF_BUNDLE_FORWARDING, dtn::data::REQUEST_REPORT_OF_BUNDLE_RECEPTION, dtn::data::REQUEST_REPORT_OF_CUSTODY_ACCEPTANCE, and transmit().
transmit a bundle directly to a reachable node
References dtn::core::BUNDLE_FORWARDED, dtn::core::CUSTODY_ACCEPT, dtn::core::Node::getConvergenceLayer(), dtn::data::Bundle::getCustodian(), dtn::data::Bundle::getPrimaryFlags(), dtn::core::Node::getRoundTripTime(), dtn::data::PrimaryFlags::isCustodyRequested(), m_cm, m_localeid, dtn::core::EventSwitch::raiseEvent(), dtn::data::Bundle::setCustodian(), dtn::core::CustodyManager::setTimer(), and dtn::core::ConvergenceLayer::transmit().
Referenced by dtn::core::BundleRouter::raiseEvent(), and raiseEvent().
| void dtn::core::BundleCore::deliver | ( | const Bundle & | b | ) |
deliver a bundle to a application
References dtn::core::BUNDLE_ACCEPTED, dtn::core::BUNDLE_DELETED, dtn::core::BUNDLE_DELIVERED, dtn::core::AbstractWorker::callbackBundleReceived(), dtn::core::CUSTODY_ACCEPT, dtn::core::CUSTODY_REJECT, dtn::data::Bundle::getDestination(), dtn::data::Bundle::getPayloadBlock(), dtn::data::Bundle::getPrimaryFlags(), dtn::data::PrimaryFlags::isFragment(), m_cm, m_worker, dtn::core::EventSwitch::raiseEvent(), and dtn::core::CustodyManager::removeTimer().
Referenced by dtn::core::BundleRouter::raiseEvent().
| void dtn::core::BundleCore::tick | ( | ) | [protected, virtual] |
overload this method to do your own stuff.
Implements dtn::utils::Service.
References m_dtntime, dtn::core::EventSwitch::raiseEvent(), and dtn::core::TIME_SECOND_TICK.
| void dtn::core::BundleCore::transmit | ( | const Bundle & | b | ) | [private] |
References dtn::core::EventSwitch::raiseEvent(), and dtn::core::ROUTE_PROCESS_BUNDLE.
| BundleCore dtn::core::BundleCore::operator= | ( | const BundleCore & | k | ) | [inline, private] |
Forbidden copy constructor
| void dtn::core::BundleCore::setLocalEID | ( | string | eid | ) | [private] |
| void dtn::core::BundleCore::transmitCustody | ( | bool | accept, | |
| const Bundle & | b | |||
| ) | [private] |
| Bundle dtn::core::BundleCore::createStatusReport | ( | const Bundle & | b, | |
| StatusReportType | type, | |||
| StatusReportReasonCode | reason = NO_ADDITIONAL_INFORMATION | |||
| ) | [private] |
References dtn::data::Bundle::appendBlock(), dtn::data::CUSTODY_ACCEPTANCE_OF_BUNDLE, dtn::data::DELETION_OF_BUNDLE, dtn::data::DELIVERY_OF_BUNDLE, dtn::data::FORWARDING_OF_BUNDLE, dtn::data::Bundle::getReportTo(), dtn::data::AdministrativeBlock::getStatusFlags(), m_localeid, dtn::data::BundleFactory::newBundle(), dtn::data::RECEIPT_OF_BUNDLE, dtn::data::Bundle::setDestination(), dtn::data::ProcessingFlags::setFlag(), dtn::data::StatusReportBlock::setMatch(), dtn::data::StatusReportBlock::setReasonCode(), dtn::data::Bundle::setSource(), dtn::data::AdministrativeBlock::setStatusFlags(), dtn::data::StatusReportBlock::setTimeOfCustodyAcceptance(), dtn::data::StatusReportBlock::setTimeOfDeletion(), dtn::data::StatusReportBlock::setTimeOfDelivery(), dtn::data::StatusReportBlock::setTimeOfForwarding(), and dtn::data::StatusReportBlock::setTimeOfReceipt().
Referenced by raiseEvent().
ConvergenceLayer* dtn::core::BundleCore::m_clayer [private] |
Referenced by getConvergenceLayer(), and setConvergenceLayer().
map<string, AbstractWorker*> dtn::core::BundleCore::m_worker [private] |
Referenced by deliver(), registerSubNode(), and unregisterSubNode().
string dtn::core::BundleCore::m_localeid [private] |
Referenced by createCustodySignal(), createStatusReport(), getLocalURI(), registerSubNode(), setLocalEID(), transmit(), and unregisterSubNode().
CustodyManager dtn::core::BundleCore::m_cm [private] |
Referenced by BundleCore(), deliver(), getCustodyManager(), transmit(), and ~BundleCore().
unsigned int dtn::core::BundleCore::m_dtntime [private] |
Referenced by tick().
1.5.6