ACE_Event_Handler是ACE中的所有反應式事件處理器的基類。這個類提供了以下能力:
- 它定義輸入事件、輸出事件、異常事件、定時器事件以及信號事件的掛鉤方法。
- 它的掛鉤方法允許應用以許多方式擴展事件處理器子類,而不必改變框架。
- 它對面向對象回調的使用簡化了“數據”與“對這些數據進行操作的掛鉤方法”的關聯
- 它對對象的使用還使“一個事件源(或成組事件源)”與“事件源所關聯的數據(比如網絡會話)”的綁定得以自動化。
- 它將不再需要的事件處理器的銷燬集中在一起。
- 它持有一個指針,指向管理它的ACE_Reactor,從而使事件處理器對其事件登記和解除登記的正確管理變得簡單。
ACE_Event_Handler的接口
方法 | 描述 |
ACE_Event_Handler() | 指派可與事件處理器相關聯的ACE_Reactor指針 |
~ACE_Event_Handler() | 調用purge_pending_notifications()來將其自身從反應器的通知機制中移除 |
handle_input() | 在輸入事件(例如連接或數據事件)發生時被調用 |
handle_output() | 在輸出事件成爲可能時(例如在流控制緩和或非阻塞式連接完成時)被調用的掛鉤方法 |
handle_exception() | 在異常事件(例如,TCP緊急數據到達)發生時被調用的掛鉤方法 |
Handle_timeout() | 在定時器到期時被調用 |
Handle_signal() | 在OS發出信號時——或是通過POSIX信號,或是在windows同步對象遷移到激發(Signaled)狀態時——被調用的掛鉤方法 |
Handle_close() | 在其他handle_*()掛鉤方法中的一個返回-1時,或是在ACE_Reactor::remove_handler()被顯式調用來解除事件處理器的登記時,執行用戶定義的終止活動的掛鉤方法 |
get_handler() | 返回底層I/O句柄。如果事件處理器只是處理時間驅動的事件,該方法可實現爲no-op |
reactor() | 用於獲取/設置與ACE_Event_Handler相關聯的ACE_Reactor指針 |
priority() | 用於獲取/設置事件處理器的優先級,如ACE_Priority_Reactor所使用的那樣 |