ACE_Event_Handler

原创 2015年11月20日 11:56:57

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所使用的那样

基于ACE中ACE_Event_Handler的定时器管理器实现

在C++项目开发中有许多用到定时器的地方,比如各个进程间定时发心跳数据,ftp服务定时扫描文件等等。由于定时器实现一般属于框架类的东西,工作中如果业务做的比较多的话容易忘记,这里记录一下基于ACE的定...

学习ACE_Reactor时候的ACE_Event_Handler 作用

很容易知道 ACE_Event_Handler 实现是采用的观察着模式 ,采用登记入 反应器, 是反应器的一个组件。就好像java 的窗体事件监听处理机制。 ===================...

BIRT_event_handler_reference

  • 2016年08月29日 01:48
  • 4.19MB
  • 下载

Event Handler Hands on lab

  • 2009年01月17日 19:07
  • 144KB
  • 下载

ACE_Service_Handler类的理解和使用

从代码的接口中直接可以看到很多相关的回调,例如 handle_write_stream ,那么它们是什么时候被调的呢? 00369 void 00370 ACE_POSIX_Asynch_Writ...

ACE_Svc_Handler

ACE_Event_Handler: 事件处理器,是ace中所有反应式事件处理器的基类。

ACE_Reactor::register_handler 调用 WSAEventSelect 系统函数, WSAEventSelect 函数自动把关联的 socket 设置为非阻塞模式。

ACE_Reactor::register_handler 调用 WSAEventSelect 系统函数, 而 WSAEventSelect 函数自动把socket事件设置为非阻塞模式。 看MSDN...
  • iw1210
  • iw1210
  • 2014年07月09日 16:28
  • 852

转ACE_Svc_Handler

ACE_Event_Handler: 事件处理器,是ace中所有反应式事件处理器的基类。接口比如Handle_input,Handle_timeout,Handle_signal,Handle_clo...

NS2的离散事件驱动原理Scheduler, Handler, Event

http://blog.sina.com.cn/s/blog_4ded56360100b2y2.html   NS2是离散事件驱动的仿真机制,这一点文献到处都在讲但却始终没有讲到点子上。本文试图从...
  • God2469
  • God2469
  • 2012年12月01日 20:04
  • 1396

Event handler DisableEventFiring EnableEventFiring BeforeProperties AfterProperties

编写一个event handler来仅在满足某种条件的时候才允许某个动作的执行, 是非常常见的. 比如说, 你可以写一个ItemDelete handler, 来在当前用户不是站点管理员时取消掉删除动...
  • dyp330
  • dyp330
  • 2011年05月25日 15:30
  • 422
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ACE_Event_Handler
举报原因:
原因补充:

(最多只允许输入30个字)