本文整理汇总了C++中ACE_Reactor::timer_queue方法的典型用法代码示例。如果您正苦于以下问题:C++ ACE_Reactor::timer_queue方法的具体用法?C++ ACE_Reactor::timer_queue怎么用?C++ ACE_Reactor::timer_queue使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ACE_Reactor
的用法示例。
在下文中一共展示了ACE_Reactor::timer_queue方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
// If any command line arg is given, run the test with high res timer
// queue. Else run it normally.
int
run_main (int argc, ACE_TCHAR *[])
{
ACE_START_TEST (ACE_TEXT ("Reactor_Timer_Test"));
if (argc > 1)
{
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("Running with high-res timer queue\n")));
ACE_Reactor *r = ACE_Reactor::instance ();
(void) ACE_High_Res_Timer::global_scale_factor ();
r->timer_queue ()->gettimeofday (&ACE_High_Res_Timer::gettimeofday_hr);
}
// Register all different handlers, i.e., one per timer.
test_registering_all_handlers ();
// Now try multiple timers for ONE event handler (should produce the
// same result).
test_registering_one_handler ();
// Try canceling handlers with odd numbered timer ids.
test_canceling_odd_timers ();
// Make sure <reset_timer_inverval> works.
test_resetting_timer_intervals ();
ACE_END_TEST;
return 0;
}
示例2: tq
// If any command line arg is given, run the test with high res timer
// queue. Else run it normally.
int
run_main (int argc, ACE_TCHAR *[])
{
ACE_START_TEST (ACE_TEXT ("Reactor_Timer_Test"));
if (argc > 1)
{
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("Running with high-res timer queue\n")));
ACE_Reactor *r = ACE_Reactor::instance ();
(void) ACE_High_Res_Timer::global_scale_factor ();
// Change the source of time in the Reactor to the
// high-resolution timer. Why does this test require such
// precision for a 1 second timer is beyond me ... I think it
// is a cut&paste error.
//
// The use of auto_ptr<> is optional, ACE uses dangerous memory
// management idioms everywhere, I thought I could demonstrate how
// to do it right in at least one test. Notice the lack of
// ACE_NEW_RETURN, that monstrosity has no business in proper C++
// code ...
auto_ptr<ACE_Timer_Heap_Variable_Time_Source> tq(
new ACE_Timer_Heap_Variable_Time_Source);
// ... notice how the policy is in the derived timer queue type.
// The abstract timer queue does not have a time policy ...
tq->set_time_policy(&ACE_High_Res_Timer::gettimeofday_hr);
// ... and then the timer queue is replaced. Strangely, the
// Reactor does *not* copy the timers, it just deletes the
// existing timer queue ....
r->timer_queue(tq.get());
// ... the Reactor has assumed ownership, release the
// auto_ptr<> ...
tq.release();
}
// Register all different handlers, i.e., one per timer.
test_registering_all_handlers ();
// Now try multiple timers for ONE event handler (should produce the
// same result).
test_registering_one_handler ();
// Try canceling handlers with odd numbered timer ids.
test_canceling_odd_timers ();
// Make sure <reset_timer_inverval> works.
test_resetting_timer_intervals ();
ACE_END_TEST;
return 0;
}