频道栏目
首页 > 安全 > 其他 > 正文
  • 2.7.3 信号量事件删除流程的分析

    最后来看一下信号量事件处理器的删除函数—remove_handler,如代码清单2-50所示。代码清单2-50 remove_handler函数----------------------------------------------- Sig_Handler.cppintACE_Sig_Handler::remo...

    关键词: 2.7.3  信号量  事件 

  • 2.7.2 Reactor管理器中的信号量事件处理

    尽管信号量事件的调度没有出现在ACE_Select_Reactor_T类的dispatch函数中,但是该函数还是对信号量事件做了一些处理。dispatch函数中关于信号量的处理部分如代码清单2-49所示。代码清单2-49 dispatch函数------...

    关键词: 2.7.2  Reactor  管理器 

  • 2.7.1 信号量事件管理器的分析

    由于信号量事件完全区别于I/O事件,所以I/O事件的调度方法不能用于调度信号量事件。要处理信号量事件,框架必须先封装操作系统用于处理信号量事件的原始数据结构和接口。这一工作由ACE_Sig_Set类和ACE_Sig_Actio...

    关键词: 2.7.1  信号量  事件 

  • 2.7 信号量事件调度的分析

    在Linux操作系统中,信号量事件和I/O事件的处理方式是完全不同的:I/O事件一般使用分离函数等待事件,然后对描述符进行读写等操作;信号量事件则通过应用程序向操作系统注册信号处理函数来完成。信号量事件调度不...

    关键词: 信号量  事件  调度 

  • 2.6.6 I/O事件删除流程的分析

    如果想要删除某个事件,那么可以调用remove_handler函数。同样remove_handler函数也有几个重载版本,我们分析其中的一个,如代码清单2-40所示。代码清单2-40 remove_handler函数------------------------------...

    关键词: 2.6.6  事件  删除 

  • 2.6.5 I/O事件调度流程的分析

    熟悉网络编程或者了解select分离函数用法的读者都知道,对事件的调度其实是一个无限循环,每次循环都调用select函数等待和分离事件,一旦select函数有事件返回,那么针对返回的描述符进行I/O处理。Reactor框架的...

    关键词: 2.6.5  事件  调度 

  • 2.6.4 I/O事件注册流程的分析

    要使用Reactor框架来调度应用程序的I/O事件,应用程序必须将I/O事件注册到框架中,这不仅需要将一个具体的事件处理器放到事件处理器仓库中,还必须将事件处理器的描述符和事件处理器处理的事件加入到框架的调度集...

    关键词: 2.6.4  事件  注册 

  • 2.6.3 I/O事件处理器仓库的分析

    Reactor管理器对I/O事件的调度分为两步,先是通过操作系统提供的select函数将事件分离,然后根据应用程序注册的事件处理器进行调度。I/O事件处理器和I/O描述符是一一对应的。要满足应用程序注册、删除和调度事件...

    关键词: 2.6.3  事件  处理器 

  • 2.6.2 调度集操作函数的分析

    bit_ops函数是调度集操作函数,其定义如代码清单2-21、代码清单2-22所示,它的功能是根据事件类型在调度集中对描述符进行GET、ADD、SET、DELETE操作。我们先来看函数的第一部分—初始化。代码清单2-21 bit_ops函...

    关键词: 2.6.2  调度  操作 

  • 2.6.1 I/O事件调度集的设计

    在Linux下,一个文件描述符可以对应3种不同的I/O事件:READ、WRITE和EXCEPT,select函数可以同时分离出这些事件。为了表达这种关系,ACE设计了ACE_Select_Reactor_ Handle_Set类,如代码清单2-19所示,其中ACE_...

    关键词: 2.6.1  事件  调度 

  • 2.6 I/O事件调度的分析

    在分析框架对I/O事件的调度之前,我们先来复习一下select函数是如何来分离事件的。select函数的原型[19]为:int select(int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptset, const s...

    关键词: 2.6 

  • 2.5.4 ACE_Select_Reactor_T类的分析

    ACE_Select_Reactor_T类是Reactor管理器的一种实现,它以操作系统的select函数作为事件的分离器,它是一个模板类,模板参数用于指明当前使用的令牌类型。ACE_Select_Reactor_T类的数据成员非常少,其中deactivat...

    关键词: 2.5.4 

  • 2.5.3 ACE_Select_Reactor_Impl类的分析

    ACE_Select_Reactor_Impl仍然是一个抽象类,它为基于select调用的分离函数提供统一的接口,它和其他类的结构关系可参考图2-2。如代码清单2-18所示,ACE_Select_Reactor_Impl类有着丰富的数据成员,考虑到代码显示...

    关键词: 2.5.3 

  • 2.5.2 Bridge设计模式接口

    ACE_Reactor_Impl是一个抽象类,它的结构可以参考图2-2,其主要作用是为Bridge设计模式中的Implementor提供统一的接口

    关键词: 2.5.2  Bridge  设计 

  • 2.5.1 Reactor管理器接口分析

    ACE_Reactor类是Reactor管理器面向应用程序的接口。它使用Facade设计模式来简化应用程序对Reactor框架的访问,同时又采用Bridge设计模式来实现跨平台的功能。ACE_Reactor是一个接口转发类,除了构造和析构函数,...

    关键词: 2.5.1  Reactor  管理器 

  • 2.5 Reactor管理器的设计分析

    框架管理器是整个框架的核心。一方面,它需要向应用程序提供接口,这样应用程序才能访问框架;另一方面,它又需要管理框架内的所有事件,完成框架提供的领域的功能。ACE的Reactor框架使用ACE_Reactor类作为框架管...

    关键词: Reactor  管理器  设计 

  • 2.4.2 事件处理器接口的使用规范

    既然使用Reactor框架,就需要遵守Reactor框架的一些约束。q 应用程序的事件处理器必须继承ACE_Event_Handler接口,然后注册到框架中,才能被框架调度。q ACE_Event_Handler接口的模板函数会被Reactor管理器调用...

    关键词: 2.4.2  事件  处理器 

  • 2.4.1 事件处理器接口的构造与析构

    ACE_Event_Handler接口的构造函数,如代码清单2-12所示。代码清单2-12 构造函数--------------------------------------------- Event_Handler.cppACE_Event_Handler::ACE_Event_Handler (ACE_Reactor *r, ...

    关键词: 2.4.1  事件  处理器 

  • 2.4 事件处理器接口实现

    事件处理器接口定义了用户需要遵循的框架中的约束,是框架调度过程中不变的部分,是框架设计中非常重要的元素。事件处理器接口中的方法直接定义了框架所提供的功能,由于框架是面向某一应用领域的,所以这些方法...

    关键词: 事件  处理器  接口 

  • 2.3.3 main函数

    最后来看main函数,如代码清单2-9所示。代码清单2-9 main函数---------------------------------------------------- server.cppACE_INT32 main( ACE_INT32 argc, char **argv ){ ACE_UINT16 port = ...

    关键词: 2.3.3 

排行
热门
论坛推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站