
ACE
wayz11
这个作者很懒,什么都没留下…
展开
-
ACE期货类ACE_Future返回异步调用结果原理解析
ACE_Future result = asynch_fun();在阅读主动对象模式示例代码时,看到ACE_Future类。异步调用直接返回ACE_Future对象。当异步调用完成时,返回的ACE_Future对象,将设置返回值。此时使用ACE_Future的方法ACE_Future::ready (void)将返回1。本文将探讨ACE_Future期货类是如何在异步调用完成后设置返回的ACE原创 2012-04-09 10:35:26 · 2088 阅读 · 0 评论 -
ACE_Message_Queue<ACE_MT_SYNCH>::putq ()使用时需要注意的地方
函数声明 templateint ACE_Task::putq ( ACE_Message_Block * , ACE_Time_Value * timeout = 0 ) timeout参数timeout参数使用绝对时间,而不是相对时间。使用时我们可以使用ACE_OS::gettimeofday ()获取系统当前时间,再加上一个相对时间来确定超时时间。原创 2013-03-21 17:46:19 · 2900 阅读 · 0 评论 -
大家来找茬之ACE_Message_Queue常见错误
下面的代码有3处常见错误: ACE_Message_Queue high_priority_queue, low_priority_queue; ACE_Message_Block *mb; while (1) { // 超时时间200毫秒 ACE_Time_Value time_out (0, 200);原创 2012-12-18 16:14:38 · 1372 阅读 · 0 评论 -
一个不起眼的手误,让我调了半小时
一个不起眼的手误,让我调了半小时,大家最好先别看解析部分,自己练一下眼里吧。运行是报段错误:(3077573488) starting up(3077573488) is exiting段错误下面给出错误代码: 1 #include 2 #include 3 #include 4 5 class ExitHandler : public ACE原创 2012-06-04 16:24:49 · 1305 阅读 · 0 评论 -
从ACE_TRACE到ACE_TMAIN
引言我们知道ACE日志宏是否产生日志方法调用,由三个配置在编译时的值决定:ACE_NTRACE、ACE_NDEBUG,以及ACE_NLOGGING。要启用相应的日志宏,需要定义相应的宏。ACE_NTRACE默认为1(禁用),ACE_NDEBUG和ACE_NLOGGING默认为未定义(启用)。通过在包含头文件“Log_Msg.h”头文件前定义ACE_NTRACE为0可以启用ACE_TRACE原创 2012-12-07 17:00:54 · 2403 阅读 · 0 评论 -
ACE_Message_Block和ACE_Message_Queue问答
1、ACE_Message_Block::release (void)这个函数有返回值吗?返回什么?这个函数的确有返回值,返回类型为ACE_Message_Block *,不过在实现的时候恒返回NULL指针。这个函数和析构函数有什么区别?多次调用安全吗?析构函数无论是变量退栈还是由delete释放堆上分配对象,都会被调用。这个函数只适用于堆上分配的对象。调用releas原创 2012-09-04 15:34:26 · 1455 阅读 · 0 评论 -
ACE多线程编程(一)
使用ACE进行多线程编程的内容相对较多,分多篇总结。本文中主要介绍线程的创建、互斥体和线程间通信。1、线程的创建使用ACE进行多线程编程比较简单,只需:从ACE_Task_Base创建子类;重新实现svc()虚方法,这个函数是新线程的进入点。新线程从svc函数开始执行,函数返回,则新线程也结束;调用ACE_Task_Base::activate()方法启动新线程;调用ACE_T原创 2012-06-26 15:13:37 · 3543 阅读 · 0 评论 -
ACE进程管理小结
1、使用ACE_Process派生进程1.1 使用ACE_Process派生进程需要两个步骤:实例化一个ACE_Process_Options对象,为新创建的进程指定属性:设置标准I/O句柄(标准输入、标准输出、标准错误输出,可进行输入输出重定向);指定父子进程句柄继承方式;设置子进程的环境变量和命令行;在Windows上设置安全属性,在UNIX上设置uid/gid/e原创 2012-05-22 16:18:37 · 2461 阅读 · 0 评论 -
ACE 信号使用小结
1、 ACE_Sig_ActionACE_Sig_Action是对POSIX sigaction()调用进行封装的封装类。使用ACE_Sig_Action类,只能为一个信号设置一个回调函数。由于回调函数是在信号中断处理上下文中,绝不要在回调函数中做耗时工作。如果有耗时工作要做,我们可以使用ACE_Reactor的通知机制,让耗时工作转会普通的执行上下文去做。ACE_Sig_Action用法原创 2012-05-23 16:35:09 · 4660 阅读 · 0 评论 -
ACE_Message_Block的一个使用误区
在阅读《ACE程序员指南》时,发现多处代码都错误的使用了ACE_Message_Block。在中文版第七章 7.61小节ClientService::handle_input() 函数中,有如下的使用:char buffer[INPUT_SIZE]; //1 在栈上声明的数组... ...ACE_Message_Block *mb;... ...ACE原创 2012-05-17 15:24:28 · 1322 阅读 · 1 评论 -
启动ACE_TRACE日志
使用ACE_TRACE (msg)宏可以可以输出文件名,行号和msg。在其退出作用域时,显示“leaving msg”。因此用这个日志宏可以很方便的跟踪函数调用栈。这个日志宏,默认是关闭的。可以按如下方法启用这个日志宏。方法1:在#include 之前定义宏ACE_NTRACE#define ACE_NTRACE 0方法2:编译时添加选项-DACE_NTRA原创 2012-06-04 17:27:04 · 1849 阅读 · 0 评论 -
ACE主动对象模式
使用ACE提供的封装类,可以方便的实现主动对象模式。实现主动模式需要的ACE封装类:ACE_Task:主动对象类的父类,用于派生线程,异步执行用户的异步调用请求。ACE_Activation_Queue:用户的异步调用请求被封装为对象,排入此执行队列。此队列使用ACE_Message_Queue实现,因此在使用此队列时无需再加额外的锁。ACE_Method_Request:用户的异步调用请原创 2012-04-09 11:28:25 · 2073 阅读 · 0 评论 -
Linux环境安装ACE 6.1.0
下载下载地址:http://download.dre.vanderbilt.edu/下载ACE-6.1.0.tar.bz2,这个软件包只包含ACE,不包含TAO等附加的东西,另外bz2压缩格式的源码包比较小,只有7.55M。解压mkdir ace-installtar jxf ACE-6.1.0.tar.bz2 -C ace-install配置首先使用命令#原创 2012-03-30 17:21:55 · 6327 阅读 · 1 评论