ACE学習簡易記録
1857 ワード
一.ACE_Reactorの使い方
1.ACE_の作成Event_Handlerの派生クラス.
2.ACE_で書き換えるReactor呼び出しの方法.
3.main()関数で通常発生するカスタム派生クラスをインスタンス化します.
4.カスタムhandlerとReactorを関連付けます.
5.Reactorを起動すればよい
1.ACE_の作成Event_Handlerの派生クラス.
class MyHandler : public ACE_Event_Handler
{
public:
MyHandler(
// ...
)
:ACE_Event_Handler()
{
// ...
}
// ...
}
2.ACE_で書き換えるReactor呼び出しの方法.
int handle_timeout ( const ACE_Time_Value ¤t_time,const void * = 0)
{
// ...
}
// or
int handle_signal ( int signum, siginfo_t * = 0, ucontext_t * = 0 )
{
// ...
}
// or
int handle_input( ACE_HANDLE fd = ACE_INVALID_HANDLE)
{
// ...
}
// or
3.main()関数で通常発生するカスタム派生クラスをインスタンス化します.
MyHandler * handler = new MyHandler();
4.カスタムhandlerとReactorを関連付けます.
ACE_Time_Value initialDelay(3);
ACE_Time_Value interval(5);
ACE_Reactor::instance()->schedule_timer( handler,
0,
initialDelay,
interval);
// or
ACE_Sig_Set signalSet(1);
ACE_Reactor::instance()->register_handler(signalSet,
handler);
// or
ACE_Reactor::instance()->register_handler(handler,
ACE_Event_Handler::READ_MASK);
// or
5.Reactorを起動すればよい
ACE_Reactor::instance()->run_reactor_event_loop();