`
raojl
  • 浏览: 209694 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

(ACE) 反应器实现 定时器任务功能

Go 
阅读更多
//#include "test_config.h"
//#include "ace/Timer_Queue.h"
#include "ace/Reactor.h"
#include "ace/Time_Value.h"

#define NUMBER_TIMERS 4

static int done = 0;
static int count = 0;

class Time_Handler : public ACE_Event_Handler
{
public:
//Method which is called back by the Reactor when timeout occurs.

virtual int handle_timeout (const ACE_Time_Value &tv,const void *arg)
{
long current_count = long (arg);
//ACE_ASSERT (current_count == count);
ACE_DEBUG ((LM_DEBUG, "%d: Timer #%d timed out at %d!\n", count, current_count, tv.sec()));

//Increment count
count ++;

//Make sure assertion doesn’t fail for missing 5th timer.
if (count ==5)
count++;

//If all timers done then set done flag
if (current_count == NUMBER_TIMERS - 1)
;//done = 1;

//Keep yourself registered with the Reactor.
return 0;
}
};

int main (int arg, char *argv[])
{
ACE_Reactor reactor;
Time_Handler *th=new Time_Handler;
int timer_id[NUMBER_TIMERS];
int i;

for (i = 0; i < NUMBER_TIMERS; i++)
timer_id[i] = reactor.schedule_timer (th, (const void *)i, ACE_Time_Value(2 * i + 3),ACE_Time_Value( 2 )); //set timer to go off with delay

//Cancel the fifth timer before it goes off
//reactor.cancel_timer(timer_id[5]);//Timer ID of timer to be removed

while (!done)
reactor.handle_events();

return 0;
}
分享到:
评论

相关推荐

    ACE中文学习资料 集合多种并行网络开发模式 主动模式 半反应器模式

    ACE提供了一组丰富的C++类库,支持网络通信、线程管理、定时器、同步机制等关键功能。它的设计目标是简化网络编程的复杂性,通过提供高度抽象的接口,让开发者能够专注于业务逻辑,而不是底层通信细节。 接着,我们...

    ACE程序员指南

    6. **ACE_Time_Value**和**定时器**:ACE提供了一种处理定时任务的机制,允许开发者设置超时和间隔,这对于实现定时服务或心跳检测等非常重要。 7. **ACE编译和配置**:了解如何在不同的操作系统上安装和配置ACE库...

    ACE相关类的使用说明

    - **ACE_Reactor**: 反应器模式的核心实现,处理事件调度和回调,使得程序可以异步处理多个事件源。 2. ACE类的使用 - **ACE_Task**: 这是ACE中的基本工作单元,它可以作为一个线程或者多线程的任务,支持同步和...

    ACE反应器(Reactor)模式的深入分析

    ACE反应器(Reactor)模式是一种用于处理并发事件的架构设计模式,主要应用于网络服务器的开发,特别是处理大量并发连接的场景。它有效地解决了在单线程或多线程环境中,如何高效地处理多个I/O事件的问题。Reactor模式...

    ACE.rar_ACE

    1. **ACE框架结构**:ACE主要由几个核心组件构成,如Reactor(事件反应器)、Thread Manager(线程管理器)、Tokenizer(分词器)等,它们共同构成了一个强大的网络通信框架。 2. **Reactor模式**:这是ACE的核心...

    五本ACE教程

    6. **I/O策略**:ACE提供了一组强大的I/O策略,如反应器模式、Proactor模式,用于处理I/O事件,简化了事件驱动编程的实现。 7. **分布式系统框架**:《基于ACE的分布式服务器集群系统框架的设计与实现》论文可能会...

    ACE6.1.0库文件

    6. **事件驱动和反应器模式**:ACE实现了事件驱动的编程模型,通过反应器模式,开发者可以以统一的方式处理各种类型的事件,如I/O完成、定时事件或用户自定义事件。 7. **移植性**:ACE库设计的目标之一就是高度的...

    ACE资料系列1 - 配置和入门

    此外,ACE还支持许多高级通信模式,如反应器模式、服务容器和工作调度器,这些都有助于简化复杂网络应用的开发。 **ACE自适配通信环境中文技术文档 - 中篇:ACE程序员教程** 这个文档可能是ACE编程的深入指南,...

    ACE框架知识

    反应器操作 - **close()**: 关闭并释放由`ACE_Reactor`使用的资源。 - **register_handler(ACE_Event_Handler*, ACE_Reactor_Mask)**: 注册事件处理器到`ACE_Reactor`,并指定感兴趣的事件类型。 - **remove_...

    Adept-eV 指令集_ACE_

    本文将深入探讨"Adept-eV 指令集",这是一套为欧姆龙ACE控制器设计的指令系统,用于实现复杂的控制逻辑和自动化任务。 首先,Adept-eV指令集是欧姆龙ACE平台的核心组成部分,它提供了一系列的编程指令,使得用户...

    基于ACE架构的前置采集软件的设计和实现.docx

    它包含三个层次结构:操作系统适配层用于封装并发机制和进程间通信,OO Wrappers层利用C++的面向对象特性处理内存管理、多线程、多进程、消息队列和定时器等,框架组件层则提供了如前摄器、反应器、任务和连接接收器...

    ACE网络开发.pdf

    3. **框架**: ACE包含了一组可复用的框架,如反应器(Reactor)模式,用于处理事件驱动的并发编程;工作窃取调度器(Work Stealing Deque)用于高效的任务调度;以及传输层的TCP和UDP套接字管理框架等。 4. **...

    ACE程序员教程(中篇).pdf

    它还提供了高级的组件和接口,用于实现复杂的通信和控制逻辑,如反应器(Reactor)和处理器分派(Proactor)模型,用于处理异步事件和操作。 ### 三、ACE的关键组件 #### 1. 并发和同步组件 ACE提供了多种同步...

    ACE摘录&总结

    ACE的核心功能包括进程间通信(IPC)、定时器、信号处理、内存管理、线程管理、文件系统管理以及连接建立和服务初始化等。此外,它还支持软件的静态和动态配置、重配置,允许开发者构建分层协议和流式框架,并提供...

    一种适用于通信软件的事件多路分解框架

    ACE反应器框架是一种专门为通信软件设计的事件多路分解框架,它的核心是实现了一种叫做“反应器模式”的设计模式。反应器模式是一种广泛应用于分布式系统中的事件处理模式,尤其是在需要处理多个I/O事件的服务程序中...

    ace_reactor:王牌React堆服务器

    Ace Reactor提供了多种反应器实现,包括基于select、poll、epoll等不同操作系统原生API的版本,以适应不同的性能和规模需求。例如,Linux系统的epoll机制在高并发下表现出色,因为它支持水平触发和边缘触发两种模式...

    先进简约高速的服务器内核:ServerCore 项目

    /*======================================================================== 静态库:ServerCore 项目概述 ...5〉反应器部分,仿真 ACE - Reactor,采用事件驱动回调控制流。 6〉日志显示,周期刷屏。 7〉

Global site tag (gtag.js) - Google Analytics