ACE_Reactor 是一個事件監聽分派中心, 通過ACE_Reactor註冊需要監控的事件,當事件發生時,ACE_Reactor就會自動調用註冊時指定的控制程式進行處理。
基本介紹
- 外文名:ACE_Reactor
- 責任:檢測來自各種事件源的事件的發生
- 框架類:ACE_Time_Value
- 優點:廣泛的可移植性
概念,框架的責任,框架類,框架的優點,
概念
轉:
ACE Reactor 框架簡化了事件驅動程式的開發,而事件驅動是許多網路化套用的特徵。該框架實現Reactor模式,允許事件驅動的套用對源自許多不同事件源的事件作出反應,如I/O句柄,定時器,以及信號。套用重新定義框架所定義的掛鈎方法,對其進行分派來處理事件。
框架的責任
1、檢測來自各種事件源的事件的發生。
2、將事件多路分離給其預先登記的事件處理器。
3、分派給處理器所定義的掛鈎方法,從而以一種套用定義的方式處理這些事件。
框架類
1、ACE_Time_Value :提供時間和持續時間的可移植、規範化的表示,使用C++運算符重載來簡化與時間有關的算術和關係運算。
2、ACE_Event_Handler :抽象類,其接口定義的掛鈎方法是ACE_Reactor 回調的目標。大多數通過ACE開發的套用事件處理器都是ACE_Event_Handler的後代。
3、ACE_Timer_Queue:抽象類,定義定時器佇列的能力和接口。ACE含有多種派生自ACE_Timer_Queue的類,為不同的定時機制提供了靈活的支持。
4、ACE_ Reactor:提供一個接口,用來在Reactor 框架中管理事件處理器登記,並執行事件循環來驅動事件檢測、多路分離的分派。
這些類在Reactor 模式中扮演了以下角色:
1、事件基礎設施層類(Event Infrastructure Layer Classes) 該類同步地檢測事件並多路分離給事件處理器,並隨即分派與之相關聯的事件處理器掛鈎方法。ACE Reactor 框架中的基礎設施層組件包括ACE_Time_Value、ACE_Event_Handler、ACE定時器佇列類,以及ACE_Reactor的各種實現。
2、套用層類(Application Layer Classes) 該類定義事件處理器,以在其掛鈎方法中執行套用所定義的處理。在ACE Reactor 框架中,套用層類都是ACE_Event_Handler 的後代。
框架的優點
1、廣泛的可移植性。
可以對框架進行配置,使用多種OS 事件多路分離機制。
2、使事件檢測、多路分離,以及分派自動化。
通過消除對不可移植的本地OS 事件多路分離API 的依賴,ACE Reactor 框架為套用提供了統一的面向對象事件檢測,多路分離,以及分派機制,可以向ACE_Reactor 登記事件處理器對象來處理各種類型的事件。
3、透明的可擴展性。
框架通過繼承的動態綁定,採用掛鈎方法,解除了“較低級的事件機制”(如檢測多個I/O句柄上的事件,使定時器到期,以及多路分離和分派適當的事件處理器的方法來處理事件) 與“較高級的套用事件處理策略”(如連線建立策略、數據整編和解整編,以及對客戶請求的處理) 的耦合。如此的設計使開發者能在不修改已有套用代碼的情況下,對ACE Reactor 框架進行透明擴展。
