第1部分 ACE基础知识 3
第1章 ACE简介 3
1.1 ACE的历史 3
1.2 ACE的优势 4
1.3 ACE的组织结构 5
1.4 模式、类库和框架 5
1.5 把你的代码移植到多种操作系统 6
1.6 消除C++编译器之间的差异 8
1.7 同时使用窄字符和宽字符 15
1.8 到哪里寻求更多的信息和支持 16
1.9 小结 17
第2章 怎样构建ACE并在你的程序中使用它 18
2.1 关于ACE版本的说明 18
2.2 ACE Distribution指南 18
2.3 怎样构建ACE 20
2.4 怎样在你的应用中包含ACE 22
2.5 怎样构建你的应用 22
2.6 小结 26
第3章 使用ACE日志设施 27
3.1 基本的日志记录和跟踪 27
3.2 启用和禁用日志严重级别 32
3.3 定制ACE日志宏 35
3.4 重定向日志输出 41
3.5 使用回调 45
3.6 日志客户和服务器看守 49
3.7 LogManager类 53
3.8 通过ACE日志策略进行运行时配置 56
3.9 小结 58
第4章 收集运行时信息 59
4.1 命令行参数和ACE_Get_Opt 59
4.2 访问配置信息 63
4.3 构建参数向量 65
4.4 小结 66
第5章 ACE容器 67
5.1 容器的概念 67
5.2 序列容器 69
5.3 关联容器 80
5.4 分配器 89
5.5 小结 92
第2部分 进程间通信 95
第6章 基本的TCP/IP Socket用法 95
6.1 一个简单客户 95
6.2 给客户增加健壮性 99
6.3 构建一个服务器 104
6.4 小结 108
第7章 处理事件及多个I/O流 109
7.1 Reactor框架总览 109
7.2 处理多个I/O源 110
7.3 信号 120
7.4 通知 122
7.5 定时器 123
7.6 使用Acceptor-Connector框架 131
7.7 反应器实现 141
7.8 小结 144
第8章 异步I/O与ACE Proactor框架 145
8.1 为何使用异步I/O? 145
8.2 怎样发送和接收数据 146
8.3 建立连接 153
8.4 ACE_Proactor完成多路分离器 155
8.5 使用定时器 156
8.6 其他I/O工厂类 156
8.7 结合Reactor与Proactor框架 156
8.8 小结 158
第9章 其他IPC类型 159
9.1 基于UDP/IP的主机间IPC 159
9.2 主机内通信 163
9.3 小结 165
第3部分 进程与线程管理 169
第10章 进程管理 169
10.1 派生新进程 169
10.2 使用ACE_Process_Manager 174
10.3 使用ACE_Process_Mutex进行同步 178
10.4 小结 181
第11章 信号 182
11.1 使用包装 182
11.2 事件处理器 185
11.3 保护临界区 190
11.4 通过反应器管理信号 192
11.5 小结 192
12.1 入门 193
第12章 基本的多线程编程 193
12.2 基本的线程安全性 194
12.3 任务间通信 199
12.4 小结 206
第13章 线程管理 207
13.1 线程的类型 207
13.2 优先级与调度类 209
13.3 线程池 212
13.4 使用ACE_Thread_Manager进行线程管理 213
13.5 信号 216
13.6 线程启动挂钩 219
13.7 取消 220
13.8 小结 223
第14章 线程安全与同步 224
14.1 保护原语 224
14.2 线程同步 234
14.3 线程专有存储 240
14.4 小结 241
15.1 模式 242
第15章 主动对象 242
15.2 模式使用 245
15.3 小结 251
第16章 线程池 252
16.1 理解线程池 252
16.2 半同步/半异步模型 253
16.3 领导者/跟随者模型 263
16.4 线程池与反应器 267
16.5 小结 270
第17章 共享内存 273
17.1 ACE_Malloc与ACE_Allocator 273
第4部分 ACE高级特性 273
17.2 ACE_Malloc的持久功能 275
17.3 与位置无关的分配 278
17.4 用于容器的ACE_Malloc 281
17.5 包装 293
17.6 小结 294
18.1 综述 296
第18章 ACE Streams框架 296
18.2 使用单向流 297
18.3 双向流 312
18.4 小结 328
第19章 ACE Service Configurator框架 330
19.1 综述 330
19.2 配置静态服务 331
19.3 设置动态服务 336
19.4 设置流 338
19.5 在执行过程中重新配置服务 339
19.6 使用XML配置服务与流 340
19.7 不用svc.conf配置服务 341
19.8 单体与服务 342
19.9 小结 342
第20章 定时器 343
20.1 定时器概念 343
20.2 定时器队列 343
20.3 预先构建的分派器 351
20.4 管理事件处理器 353
20.5 小结 357
第21章 ACE Naming Service 358
21.1 ACE_Naming_Context 358
21.2 单进程命名上下文:PROC_LOCAL 359
21.3 在一个节点上共享命名上下文:NODE_LOCAL 367
21.4 在网络上共享命名上下文:NET_LOCAL 372
21.5 小结 374
参考书目 375