ACE
cheng168520
这个作者很懒,什么都没留下…
展开
-
在Linux系统中安装和配置ACE
本文详细描述了在Linux操作系统上安装和配置“自适应通信环境(ACE)”的过程和注意事项。文中的描述基于RedHat Linux 9操作系统和ACE 5.4版准备工作:1.确保你的Linux操作系统的开发环境(gcc、make……)是完整且可用的。2.在安装ACE的过程中,可能需要root权限,因此确保你拥有root帐户的密码。3.对于典型的Redhat9系统,autoconf程序的版本原创 2008-11-21 17:54:00 · 457 阅读 · 0 评论 -
ACE_NEW_RETURN意思
ACE_NEW_RETURN的出处,有三个定义,都在OS_Memory.h中定义,可能是用于适应不同的平台而作的吧。下面的这个是最容易看懂的,用了try-catch语句。 # define ACE_NEW_RETURN(POINTER,CONSTRUCTOR,RET_VAL) / do { try { POINTER = new CONSTRUCTOR; } / c原创 2009-08-13 18:05:00 · 1254 阅读 · 0 评论 -
ACE中日志系统(Logging Facility)的基本使用[2]
ACE可以将输出重新定向到stderr(缺省)、系统日志、输出流(Output Stream)、甚至是回调函数,在C/S结构中,ACE也可以实现客户端输出定向到服务器。本节将详细讨论这些内容。 三 ACE的重新定向设置或改变ACE日志输出目标(logging sink)可以通过ACE_Log_Msg的方法open来完成,另外可通过set_flags和clr_flags来配合实现输出到多原创 2009-07-31 10:27:00 · 2653 阅读 · 0 评论 -
ACE中日志系统(Logging Facility)的基本使用[1]
介绍了ACE中日志系统(Logging Facility)的基本使用一、简介以前曾介绍过一个开源日志系统log4cplus,ACE也有自己的Logging Facility,与log4cplus相似,ACE日志系统也具有线程安全、灵活、分级显示等特点,可以面向程序调试、运行、测试、和维护等全生命周期,可以选择将信息输出到屏幕、文件、系统日志(如Windows下的Event log)、甚至是远程服务原创 2009-07-31 10:25:00 · 1342 阅读 · 0 评论 -
ACE_Message_Queue
一直想体验下动态消息队列的特性,我一看见“ACE目前提供两种动态消息队列:基于最终期限(deadline)的和基于松弛度(laxity)的(参见[IX])动态消息队列”这句话,无限的好奇立即被激起,整了好久,结果我郁闷地发现不管我怎么设置,一点动态的特性都没有看见,和静态消息队列没有任何不同。调试跟进去才发现,原来在Windows和Linux的config文件中都没有定义"ACE_H原创 2009-07-21 16:38:00 · 4656 阅读 · 2 评论 -
[转:STL扩展技术手册卷1]适配ACE_Message_Queue
适配ACE_Message_Queue我最近参与了一些关于“中间件路由服务”的商业网络项目,为满足项目需求,我花费了一番心血,将自适配通信环境(Adaptive Communications Environment,ACE)的内存队列适配到STL的集合概念,其成果将由本章涵盖。在使用ACE Reactor框架之前,你需要从ACE_Event_Handler派生出事件处理器类(覆盖相关的事件处理原创 2009-07-21 15:08:00 · 648 阅读 · 0 评论 -
ACE_Task框架
一、概述 ACE_Task是ACE中的任务或主动对象“处理结构”的基类。ACE使用此类来实现主动对象模式。所有希望成为“主动对象”的对象都必须由此类派生。同时可将它看作是更高级的、更为面向对象的线程。ACE_Task处理的是对象,因此更有利于构造OO程序,产生更好的OO软件,而且,它还包括了一种用于与其他任务通信的易于使用的机制。ACE_Task可用作:更高级的线原创 2009-07-21 15:27:00 · 3269 阅读 · 1 评论 -
ACE 体系结构
ACE 的基础是:1. ACE OS adaptation2. C++ wrapper facades它们封装了 OS 的并发网络编程机制 1)ACE OS adaptation 层封装了 OS API,对上层提供 OS 平台无关的接口。2)C++ wrapper facades 层位于 OS adaptation 之上,提供了与之相似的功能,这些功能使用 C++原创 2008-12-02 12:55:00 · 676 阅读 · 0 评论 -
ACE编译说明
ACE_wrappers 目录下的:ACE.sln 适用于 VC7.1ACE_vc8.sln 适用于 VC8,用于编译适用于 desktop/server Windows 平台的库ACE_WinCE.sln 适用于 VC8,用于编译适用于 Windows CE/Moblie 平台的库1. 按需要使用 MSVC 打开相关的 sln 文件2. 在 ACE_wrappers/ace原创 2008-12-02 12:54:00 · 510 阅读 · 0 评论 -
C++Builder下配置ACE
首先请下载ACE包,这里就多说了. 完成下载ACE包后,把ACE包解压缩,把里面的ACE_wrappers存放到指定的目录,这里把它存放到D盘,也就是D:/ACE_wrappers. 在使用之前需要先编译安装. (1)进入目录 D:/ACE_wrappers/ace下,在里面添加一个新文件config.h,并在config.h中输入内容: #include "ace/config-win32.h"原创 2008-11-27 14:08:00 · 361 阅读 · 0 评论 -
ACE模式简单分析
ACE将网络编程进行了模式化,以便你不必每次都重复相同的代码。网络编程需要处理的事情多括中断,并发,多线程等,程序格式相对固定,但是健壮的网络程序则相对复杂。为了处理这些情形,ACE内建了几个网络编程的模式。最基本的模式当然是直接使用sock进行单客户单服务器单线程的一对一模型,这种模式相对简单,也和ACE关系不大,但是这样编写的程序不能处理并发的情况,可用性很差或者说基本不具有可用性原创 2008-11-26 16:14:00 · 568 阅读 · 0 评论 -
ACE读取配置文件
ACE读取配置文件.2008-01-22分类: 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://wanttocry.blogbus.com/logs/14298003.html 先贴代码#include "ace/OS.h"#include "ace/OS_Main.h"#include "ace/Configuration.h"#include "a原创 2008-11-24 11:37:00 · 2461 阅读 · 0 评论 -
日志消息管理
ACE提供了非常灵活、方便的日志管理和消息输出功能,下面就一些简单和直接的功能做一个简单介绍ACE_DEBUG 常规的一些输出消息 ACE_ERROR 会提供程序出错的一些低级消息2个宏的用法上是一致的 ACE_DEBUG(错误级别,"格式串",变量1...变量N) 其中部分错误级别系统定义如下: LM_SHUTDOWN = 01,系统死机级别 LM_TRACE原创 2008-11-24 11:36:00 · 508 阅读 · 0 评论 -
定时器的实现
定时器的实现 通过Reactor机制,还可以很容易的实现定时器的功能,使用方式如下。 编写一个事件反应器,重载handle_timeout()方法,该方法是定时器的触发时间到时,会自动触发该方法。 通过Reactor的schedule_timer()方法注册定时器。 启动reacotr的handle_events()事件分发循环。 当不想使用定时器时,可以通过Reactor的cancel原创 2008-11-24 11:35:00 · 1935 阅读 · 0 评论 -
ACE源码分析DAEMON
ACE源码分析DAEMON(1)——ACE::daemonize()后台服务进程不属于任何一个终端会话,当然也就不用和任何用户交互,许多系统服务由后台服务进程实施;如网络服务,打印等。Windows和UNIX在实现后台服务进程上并不统一,Windows定义的名称为SERVICE而UNIX上的名称为Daemon。对应到ACE上,对于UNIX平台ACE提供了一个名称为ACE::daemonize()原创 2008-11-24 11:36:00 · 2392 阅读 · 0 评论 -
ACE实现了一个通用的C/S架构通信程序
最近采用ACE实现了一个通用的C/S架构通信程序,具体实现简述如下:1. 服务器端:一个采用领导者/跟随者模型的线程池不断地接受从多个客户端发来的消息,并放入一个消息队列,然后又有一个采用半同步/半异步模型的线程池不断地从这个消息队列中取出消息进行处理。服务器端代码如下:(共10个文件)ACE_Server.cpp#include "ace/SOCK_Acceptor.h"#i原创 2008-11-24 11:34:00 · 559 阅读 · 0 评论 -
常用ACE类及片段
ACE_OS::strcasecmp 大小写比较ACE_OS::strncasecmp n个字符大小写比较ACE::execname (prog1); 执行prog1程序ACE_OS_String::strdup 字符串深拷贝ACE_OS::uname (&uname); 获取操作系统信息ACE_Copy_Disabled 非拷贝基础类ACE_DLL 动态库类ACE_Proce原创 2008-11-24 11:34:00 · 954 阅读 · 0 评论 -
基于ACE应用编程框架——线程池
同时处理多个客户请求,选择:为每个请求派生一个新线程;为每个连接/会话派生一个新线程;预先派生一池首管线程,也就是创建一个线程池;线程池模型有两种变种:半同步/半异步(half-sync/half-asynv model)一个侦听线程会异步地接收请求,并在某个队列中缓冲它们。另一组工作者线程负责同步地处理这些请求。层次:1.异步层:负责接收异步请求;2.排队层:负责对请求进行缓冲;3.同步层:含有原创 2009-08-17 16:34:00 · 1625 阅读 · 0 评论