ACE_Event_Handler

ACE_Event_Handler是ACE中的所有反應式事件處理器的基類。這個類提供了以下能力:

  1. 它定義輸入事件、輸出事件、異常事件、定時器事件以及信號事件的掛鉤方法。
  2. 它的掛鉤方法允許應用以許多方式擴展事件處理器子類,而不必改變框架。
  3. 它對面向對象回調的使用簡化了“數據”與“對這些數據進行操作的掛鉤方法”的關聯
  4. 它對對象的使用還使“一個事件源(或成組事件源)”與“事件源所關聯的數據(比如網絡會話)”的綁定得以自動化。
  5. 它將不再需要的事件處理器的銷燬集中在一起。
  6. 它持有一個指針,指向管理它的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所使用的那樣
發佈了121 篇原創文章 · 獲贊 51 · 訪問量 27萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章