Task 구현
호출
class LogTest_Task : public ACE_Task<ACE_NULL_SYNCH> { typedef ACE_Task<ACE_NULL_SYNCH> super; private: ACE_Log_Msg_Callback * m_pLogCallback; public: LogTest_Task( ACE_Log_Msg_Callback * logCallback ) : super(), m_pLogCallback( logCallback ) { } virtual int svc() { if( m_pLogCallback ) { ACE_LOG_MSG->set_flags( ACE_Log_Msg::MSG_CALLBACK ); ACE_LOG_MSG->clr_flags( ACE_Log_Msg::STDERR ); ACE_LOG_MSG->msg_callback( m_pLogCallback ); } // Log 출력. ACE_DEBUG( ( LM_DEBUG, ACE_TEXT("DEBUG hello World") ) ); ACE_ERROR( ( LM_ERROR, ACE_TEXT("ERROR hello World") ) ); return 0; } };
호출
// Task생성및 Task 실행. LogTest_Task logTask( ACE_Log_Msg::instance()->msg_callback() ); logTask.activate(); logTask.wait();