本文整理汇总了C++中ACE_Timer_Node_T::set_next方法的典型用法代码示例。如果您正苦于以下问题:C++ ACE_Timer_Node_T::set_next方法的具体用法?C++ ACE_Timer_Node_T::set_next怎么用?C++ ACE_Timer_Node_T::set_next使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ACE_Timer_Node_T
的用法示例。
在下文中一共展示了ACE_Timer_Node_T::set_next方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: while
/// The shared scheduling functionality between schedule() and reschedule()
template <class TYPE, class FUNCTOR, class ACE_LOCK> void
ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::schedule_i (ACE_Timer_Node_T<TYPE>* n,
const ACE_Time_Value& expire)
{
if (this->is_empty()) {
n->set_prev(this->head_);
n->set_next(this->head_);
this->head_->set_prev(n);
this->head_->set_next(n);
return;
}
// We always want to search backwards from the tail of the list, because
// this minimizes the search in the extreme case when lots of timers are
// scheduled for exactly the same time, and it also assumes that most of
// the timers will be scheduled later than existing timers.
ACE_Timer_Node_T<TYPE>* p = this->head_->get_prev();
while (p != this->head_ && p->get_timer_value() > expire)
p = p->get_prev();
// insert after
n->set_prev(p);
n->set_next(p->get_next());
p->get_next()->set_prev(n);
p->set_next(n);
}