#include <CustodyManager.h>

Public Member Functions | |
| CustodyManager () | |
| virtual | ~CustodyManager () |
| void | tick () |
| virtual void | setTimer (const Bundle &bundle, unsigned int time, unsigned int attempt) |
| virtual const Bundle | removeTimer (const CustodySignalBlock &block) |
| virtual void | acceptCustody (const Bundle &bundle) |
| virtual void | rejectCustody (const Bundle &bundle) |
| void | raiseEvent (const Event *evt) |
Protected Member Functions | |
| void | terminate () |
Private Member Functions | |
| void | retransmitBundle (const Bundle &bundle) |
| void | checkCustodyTimer () |
Private Attributes | |
| Mutex | m_custodylock |
| unsigned int | m_nextcustodytimer |
| list< CustodyTimer > | m_custodytimer |
| Conditional | m_breakwait |
| dtn::core::CustodyManager::CustodyManager | ( | ) |
| dtn::core::CustodyManager::~CustodyManager | ( | ) | [virtual] |
| void dtn::core::CustodyManager::tick | ( | ) | [virtual] |
overload this method to do your own stuff.
Implements dtn::utils::Service.
References checkCustodyTimer(), m_breakwait, and dtn::utils::Conditional::wait().
| void dtn::core::CustodyManager::setTimer | ( | const Bundle & | bundle, | |
| unsigned int | time, | |||
| unsigned int | attempt | |||
| ) | [virtual] |
References dtn::core::CustodyTimer::getTime(), m_custodylock, m_custodytimer, and m_nextcustodytimer.
Referenced by dtn::core::BundleCore::transmit().
| const Bundle dtn::core::CustodyManager::removeTimer | ( | const CustodySignalBlock & | block | ) | [virtual] |
References m_custodylock, m_custodytimer, and dtn::data::CustodySignalBlock::match().
Referenced by dtn::core::BundleCore::deliver().
| void dtn::core::CustodyManager::acceptCustody | ( | const Bundle & | bundle | ) | [virtual] |
References dtn::data::Bundle::appendBlock(), dtn::data::Bundle::getCustodian(), dtn::core::BundleCore::getInstance(), dtn::data::Bundle::getPrimaryFlags(), dtn::data::PrimaryFlags::isCustodyRequested(), dtn::core::EventSwitch::raiseEvent(), dtn::core::ROUTE_PROCESS_BUNDLE, dtn::data::Bundle::setDestination(), dtn::data::CustodySignalBlock::setMatch(), and dtn::data::Bundle::setSource().
Referenced by raiseEvent().
| void dtn::core::CustodyManager::rejectCustody | ( | const Bundle & | bundle | ) | [virtual] |
References dtn::data::Bundle::appendBlock(), dtn::data::Bundle::getCustodian(), dtn::core::BundleCore::getInstance(), dtn::data::Bundle::getPrimaryFlags(), dtn::data::PrimaryFlags::isCustodyRequested(), dtn::core::EventSwitch::raiseEvent(), dtn::core::ROUTE_PROCESS_BUNDLE, dtn::data::Bundle::setDestination(), dtn::data::CustodySignalBlock::setMatch(), and dtn::data::Bundle::setSource().
Referenced by raiseEvent().
| void dtn::core::CustodyManager::raiseEvent | ( | const Event * | evt | ) | [virtual] |
Implements dtn::core::EventReceiver.
References acceptCustody(), dtn::core::CUSTODY_ACCEPT, dtn::core::CUSTODY_REJECT, dtn::core::TimeEvent::getAction(), dtn::core::CustodyEvent::getBundle(), dtn::core::Event::getType(), m_breakwait, rejectCustody(), dtn::utils::Conditional::signal(), and dtn::core::TIME_SECOND_TICK.
| void dtn::core::CustodyManager::terminate | ( | ) | [protected, virtual] |
Reimplemented from dtn::utils::Service.
References m_breakwait, and dtn::utils::Conditional::signal().
| void dtn::core::CustodyManager::retransmitBundle | ( | const Bundle & | bundle | ) | [private] |
References dtn::core::EventSwitch::raiseEvent(), and dtn::core::ROUTE_PROCESS_BUNDLE.
Referenced by checkCustodyTimer().
| void dtn::core::CustodyManager::checkCustodyTimer | ( | ) | [private] |
References dtn::core::CustodyTimer::getTime(), dtn::utils::Mutex::leaveMutex(), m_custodylock, m_custodytimer, m_nextcustodytimer, and retransmitBundle().
Referenced by tick().
Referenced by checkCustodyTimer(), removeTimer(), and setTimer().
unsigned int dtn::core::CustodyManager::m_nextcustodytimer [private] |
Referenced by checkCustodyTimer(), and setTimer().
list<CustodyTimer> dtn::core::CustodyManager::m_custodytimer [private] |
Referenced by checkCustodyTimer(), removeTimer(), and setTimer().
Referenced by raiseEvent(), terminate(), and tick().
1.5.6