本文整理汇总了C++中EventPtr::getScheduled方法的典型用法代码示例。如果您正苦于以下问题:C++ EventPtr::getScheduled方法的具体用法?C++ EventPtr::getScheduled怎么用?C++ EventPtr::getScheduled使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类EventPtr
的用法示例。
在下文中一共展示了EventPtr::getScheduled方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: while
bool
Map::doProcessOneEvent()
{
commandQueue_.runCommands();
// search next event
while (nowItr_->second->empty())
{
if (events_.size() == 1)
{
// No more events left!
return false;
}
else
{
delete events_.begin()->second;
events_.erase(events_.begin());
}
nowItr_ = events_.begin();
}
assure(!nowItr_->second->empty(), "There MUST be events!");
// get next event
EventPtr nextEvent = nowItr_->second->front();
wns::simulator::Time newTime = nextEvent->getScheduled();
// run until all now events are processed
if (simTime_ < newTime)
{
if(stop_)
{
return false;
}
onNewSimTime(newTime);
}
simTime_ = newTime;
nextEvent->state_ = Event::Running;
(*nextEvent)();
nextEvent->state_ = Event::Finished;
// remove the event
nowItr_->second->pop_front();
return true;
}
示例2: event
wns::events::scheduler::IEventPtr
Map::doSchedule(const Callable& callable, wns::simulator::Time at)
{
EventPtr event (new wns::events::scheduler::Map::Event(callable));
event->scheduler_ = this;
event->issued_ = getTime();
event->scheduled_ = at;
EventContainer::iterator itr = events_.find(event->getScheduled());
if (itr == events_.end())
{
DiscreteTimeContainer* dtc = new DiscreteTimeContainer();
// we need to add a new list
dtc->push_back(event);
events_[at] = dtc;
}
else
{
itr->second->push_back(event);
}
event->state_ = Event::Queued;
return event;
}