#include <scheduler.hh>
Public Types | |
| typedef std::multiset < TimedEvent *, tevent_less > | teventset_t |
| typedef std::multiset< IOEvent *, ioevent_less > | ioeventset_t |
Public Member Functions | |
| Scheduler (LoopHandler &) | |
| ~Scheduler () | |
| void | insert (TimedEvent *e) |
| void | erase (TimedEvent *e) |
| void | insert (IOEvent *e) |
| void | erase (IOEvent *e) |
| template<class E> | |
| void | destroy (E *e) |
| bool | to_delete () const |
| void | loop () |
Private Types | |
| typedef Scheduler | This |
Private Member Functions | |
| Scheduler (const This &other) | |
| This & | operator= (const This &other) |
| void | handle_tevents () |
| void | handle_ioevents () |
Private Attributes | |
| teventset_t | tevent_set_ |
| Set of timed events. | |
| ioeventset_t | ioevent_set_ |
| Set of I/O events. | |
| LoopHandler & | loophandler_ |
| const Event * | current_event_ |
| Currently processed event. | |
| bool | delete_ |
Classes | |
| struct | ioevent_less |
| struct | tevent_less |
typedef Scheduler olsr::sch::Scheduler::This [private] |
| typedef std::multiset<TimedEvent*, tevent_less> olsr::sch::Scheduler::teventset_t |
| typedef std::multiset<IOEvent*, ioevent_less> olsr::sch::Scheduler::ioeventset_t |
| olsr::sch::Scheduler::Scheduler | ( | LoopHandler & | lh | ) | [inline] |
Constructor.
References olsr::sch::internal::install_sighandlers().
| olsr::sch::Scheduler::~Scheduler | ( | ) | [inline] |
References destroy(), ioevent_set_, and tevent_set_.
| olsr::sch::Scheduler::Scheduler | ( | const This & | other | ) | [inline, private] |
| void olsr::sch::Scheduler::insert | ( | TimedEvent * | e | ) | [inline] |
Timed event registering method. Adds the pointer to the timed events set and resets the timer.
References olsr::debug, olsr::utl::TimeVal::diff(), olsr::utl::down(), olsr::sch::Event::name(), olsr::sch::TimedEvent::next(), tevent_set_, and olsr::utl::up().
Referenced by olsr::msg::Message::forward(), olsr::sch::PeriodicEvent_< I >::handle(), olsr::sch::PacketReceiver::handle(), olsr::sch::PacketSender::handle(), olsr::set::TopologySet::insert(), olsr::set::TwoHopNeighborSet::insert(), olsr::set::MIDSet::insert(), olsr::set::InterfaceSet::insert(), olsr::set::HNASet::insert(), olsr::set::DuplicateSet::insert(), olsr::set::CoherenceProxy::insert_link(), main(), olsr::set::upd::LinkUpdater::operator()(), olsr::sch::QolyesterLoopHandler::operator()(), olsr::msg::TCMessage::parse(), olsr::pkt::Packet::parse(), olsr::set::CoherenceProxy::set_mprsel(), and olsr::net::RealInterface::shipout().
| void olsr::sch::Scheduler::erase | ( | TimedEvent * | e | ) | [inline] |
References olsr::debug, olsr::utl::TimeVal::diff(), olsr::utl::down(), olsr::sch::Event::name(), olsr::sch::TimedEvent::next(), tevent_set_, and olsr::utl::up().
Referenced by destroy(), olsr::set::TwoHopNeighborSet::insert(), olsr::set::MIDSet::insert(), olsr::set::HNASet::insert(), olsr::set::DuplicateSet::insert(), olsr::set::CoherenceProxy::insert_link(), olsr::set::upd::LinkUpdater::operator()(), olsr::sch::QolyesterLoopHandler::operator()(), olsr::msg::TCMessage::parse(), olsr::pkt::Packet::parse(), and olsr::set::CoherenceProxy::set_mprsel().
| void olsr::sch::Scheduler::insert | ( | IOEvent * | e | ) | [inline] |
I/O event registering method. Add the pointer to the I/O events set.
References olsr::debug, olsr::utl::down(), ioevent_set_, olsr::sch::Event::name(), and olsr::utl::up().
| void olsr::sch::Scheduler::erase | ( | IOEvent * | e | ) | [inline] |
References olsr::debug, olsr::utl::down(), ioevent_set_, olsr::sch::Event::name(), and olsr::utl::up().
| void olsr::sch::Scheduler::destroy | ( | E * | e | ) | [inline] |
References current_event_, delete_, and erase().
Referenced by olsr::net::RealInterface::destroy_all_events(), olsr::set::TopologySet::erase(), olsr::set::TwoHopNeighborSet::erase(), olsr::set::MIDSet::erase(), olsr::set::HNASet::erase(), olsr::set::DuplicateSet::erase(), olsr::sch::PacketSender::handle(), olsr::sch::MessageForwarder::handle(), olsr::set::CoherenceProxy::unset_mprsel(), olsr::net::RealInterface::~RealInterface(), and ~Scheduler().
| bool olsr::sch::Scheduler::to_delete | ( | ) | const [inline] |
References delete_.
| void olsr::sch::Scheduler::handle_tevents | ( | ) | [inline, private] |
Timed events handling method. To be called from the event loop.
References current_event_, olsr::debug, olsr::utl::deindent(), delete_, olsr::utl::TimeVal::diff(), olsr::utl::down(), olsr::sch::Event::handle(), indent, olsr::sch::Event::name(), olsr::sch::TimedEvent::next(), olsr::utl::TimeVal::now(), tevent_set_, and olsr::utl::up().
Referenced by loop().
| void olsr::sch::Scheduler::handle_ioevents | ( | ) | [inline, private] |
I/O events handling method. To be called from the event loop.
References current_event_, olsr::debug, olsr::utl::deindent(), delete_, olsr::utl::down(), olsr::sch::Event::handle(), indent, ioevent_set_, olsr::sch::Event::name(), olsr::sch::PollEvent_< P >::p(), and olsr::utl::up().
Referenced by loop().
| void olsr::sch::Scheduler::loop | ( | ) | [inline] |
The main event loop of the scheduler.
References olsr::do_dump_prof, olsr::dump_prof, handle_ioevents(), handle_tevents(), ioevent_set_, loophandler_, olsr::utl::TimeVal::now(), olsr::utl::TimeVal::set_now(), and tevent_set_.
Referenced by main().
teventset_t olsr::sch::Scheduler::tevent_set_ [private] |
LoopHandler& olsr::sch::Scheduler::loophandler_ [private] |
Referenced by loop().
const Event* olsr::sch::Scheduler::current_event_ [private] |
bool olsr::sch::Scheduler::delete_ [private] |
Referenced by destroy(), handle_ioevents(), handle_tevents(), and to_delete().
1.5.6