Reactor框架

从已知的事物推测未见的事物,探索事物的内涵,由模式判断整体.....,具备了这些天赋大体才可以说形成了经验。

---------------Britian Writer: Henry James


名词解释:

1、事件分离器:通常是一个系统函数,如select, epoll等。

2、事件处理器:通常定义一个接口类,用户实现这个接口。接口类一般定义如handle_input(), handle_output(), handle_timeout()等函数。接口类的实例(或接口函数)可称为事件处理器。

3、Reactor管理器:通常是一个类。它封装事件分离器,管理事件处理器集合;提供接口用于应用程序注册和删除事件处理器和描述符,如register_handler(), remove_handler()等。是reactor框架的核心。


设计意图:

1、在多个客户的服务请求和请求的处理逻辑间建立清晰的隔离和衔接关系。它使用统一的分离和调度机制,使应用程序只需要完成事件处理即可。

它使应用无关的分离和调用机制成为框架的一部分,使程序结构更加清晰。

应用场景:

1、事件驱动型应用。如网络IO、磁盘IO密集型应用等

框架特点:

1、并发事件。同步轮训多源的并发事件。

2、同步处理。串行化事件处理器的处理过程。

框架组成:

1、事件源(描述符),比如socket(fd)。

2、事件分离器。如select。

3、事件处理器。每个服务提供一个独立的事件处理器。事件处理器和事件源(描述符)相关。

4、Reactor管理器。提供接口用于应用程序注册和删除事件处理器和描述符。


ACE Reactor:

ACE使用Bridge模式实现了reactor管理器中的事件处理器函数可定制。

ACE的reactor管理器可以使用Singleton模式,使用全局唯一的reactor管理器;也可以直接创建对象,使用多管理器的方式提高性能。

ACE的reactor框架支持的事件类型包括IO事件、信号量事件、定时器事件和Notify事件。

ACE的事件处理器基类为ACE_Event_Handler,reactor管理器为ACE_Reactor。



你可能感兴趣的:(ACE,Design,pattern)