第1章 概述 1
1.1 模式与框架 1
1.1.1 模式 1
1.1.2 框架 2
1.1.3 模式与框架的关系 3
1.2 ACE框架 3
1.3 关于本书 7
1.3.1 本书的内容 7
1.3.2 源代码的表示 8
1.3.3 测试组网 9
1.3.4 几个常用术语 9
1.4 ACE Socket封装器 9
1.4.1 示例分析 10
1.4.2 Socket IPC分析 13
1.4.3 ACE_SOCK_Acceptor类的分析 15
1.4.4 ACE_SOCK_Connector类的分析 19
1.5 进一步学习 23
1.6 总结 23
第2章 Reactor框架 24
2.1 Reactor构架模式 24
2.2 Reactor框架概述 26
2.3 Reactor框架应用示例 27
2.3.1 I/O事件处理器的实现 27
2.3.2 Accept事件处理器的实现 31
2.3.3 main函数 34
2.4 事件处理器接口实现 35
2.4.1 事件处理器接口的构造与析构 38
2.4.2 事件处理器接口的使用规范 38
2.5 Reactor管理器的设计分析 39
2.5.1 Reactor管理器接口分析 40
2.5.2 Bridge设计模式接口 44
2.5.3 ACE_Select_Reactor_Impl类的分析 45
2.5.4 ACE_Select_Reactor_T类的分析 46
2.6 I/O事件调度的分析 47
2.6.1 I/O事件调度集的设计 47
2.6.2 调度集操作函数的分析 50
2.6.3 I/O事件处理器仓库的分析 53
2.6.4 I/O事件注册流程的分析 59
2.6.5 I/O事件调度流程的分析 61
2.6.6 I/O事件删除流程的分析 70
2.7 信号量事件调度的分析 71
2.7.1 信号量事件管理器的分析 71
2.7.2 Reactor管理器中的信号量事件处理 77
2.7.3 信号量事件删除流程的分析 78
2.8 定时器事件调度的分析 79
2.8.1 定时器事件管理器的分析 80
2.8.2 定时器事件注册流程的分析 93
2.8.3 定时器事件调度流程的分析 94
2.8.4 定时器事件删除流程的分析 95
2.9 Notify事件调度的分析 96
2.9.1 Notify事件管理器的分析 97
2.9.2 Notify事件注册流程的分析 105
2.9.3 Notify事件调度流程的分析 106
2.10 进一步学习 107
2.11 总结 107
第3章 Service Configurator框架 108
3.1 Component Configurator构架模式 108
3.2 Configurator框架概述 109
3.3 Configurator框架应用示例1 111
3.3.1 配置文件 111
3.3.2 可配置组件 111
3.3.3 main函数 113
3.4 ACE动态库接口封装的分析 114
3.5 配置组件接口的分析 115
3.6 组件工厂函数的分析 117
3.7 组件配置器设计的分析 119
3.7.1 组件配置器控制接口的分析 119
3.7.2 组件配置器实现的分析 128
3.7.3 语法分析器的分析 138
3.8 动态库符号定位的分析 141
3.8.1 ACE_Location_Node类分析 142
3.8.2 ACE_Object_Node类的分析 143
3.8.3 ACE_Function_Node类的分析 144
3.9 配置组件仓库的分析 147
3.9.1 find函数 148
3.9.2 remove函数 149
3.9.3 suspend函数 150
3.9.4 resume函数 150
3.10 配置组件类型的分析 151
3.10.1 ACE_Service_Type类 152
3.10.2 ACE_Service_Type_Impl类 153
3.10.3 ACE_Service_Object_Type类 154
3.10.4 ACE_Service_Type_Factory类 154
3.11 指令解析功能的分析 156
3.12 配置文件解析流程的分析 157
3.13 Configurator框架应用示例2 160
3.13.1 可配置组件 160
3.13.2 配置文件 161
3.13.3 配置文件解析流程的分析 162
3.14 配置改变 162
3.15 Configurator框架应用示例3 162
3.15.1 静态配置组件 163
3.15.2 配置文件 165
3.15.3 静态配置组件分析 166
3.16 进一步学习 169
3.17 总结 169
第4章 Task框架 170
4.1 Task框架概述 170
4.2 Task框架应用示例 171
4.2.1 生产者 171
4.2.2 消费者 173
4.2.3 main函数 174
4.3 ACE消息队列实现分析 175
4.3.1 数据块结构分析 176
4.3.2 消息块结构的分析 180
4.3.3 消息队列实现的分析 182
4.4 ACE多线程编程 185
4.4.1 线程的创建 186
4.4.2 线程的运行 189
4.4.3 线程的退出 191
4.4.4 线程等待 195
4.5 Task框架接口的分析 198
4.5.1 ACE_Task_Base类 199
4.5.2 ACE_Task类 200
4.6 Active Object设计模式 201
4.6.1 模式概述 201
4.6.2 应用示例 203
4.6.3 ACE_Future和ACE_Future_Rep类 207
4.7 进一步学习 210
4.8 总结 210
第5章 Acceptor_Connector框架 211
5.1 Acceptor_Connector构架模式 211
5.2 Acceptor_Connector框架概述 212
5.3 Acceptor_Connector框架应用示例 213
5.3.1 open函数 214
5.3.2 handle_input函数 214
5.3.3 handle_close函数 215
5.3.4 main函数 215
5.4 服务处理器接口的分析 216
5.4.1 open函数 217
5.4.2 handle_close函数 218
5.4.3 close函数 219
5.4.4 shutdown函数 219
5.5 Acceptor设计的分析 220
5.5.1 ACE_Acceptor类 220
5.5.2 open函数 221
5.5.3 handle_input函数 222
5.5.4 handle_close函数 224
5.6 Connector设计的分析 225
5.6.1 ACE_Connector类 226
5.6.2 阻塞模式连接的分析 226
5.6.3 非阻塞模式连接的分析 229
5.7 进一步学习 236
5.8 总结 236
第6章 Proactor框架 237
6.1 Proactor构架模式 237
6.2 Proactor框架概述 239
6.3 Proactor框架应用示例 240
6.3.1 I/O事件完成处理器的实现 240
6.3.2 异步Acceptor的实现 245
6.3.3 main函数 245
6.4 事件完成处理器接口的分析 246
6.5 Proactor管理器的设计分析 247
6.5.1 Proactor管理器接口的分析 248
6.5.2 Bridge设计模式接口 252
6.5.3 ACE_POSIX_Proactor接口分析 252
6.6 异步操作初始化器和操作结果分析 253
6.6.1 公共接口介绍 256
6.6.2 ACE_POSIX_Asynch_Operation类 256
6.6.3 ACE_POSIX_Asynch_Result类 258
6.6.4 ACE_POSIX_Asynch_Read_Stream_Result类 261
6.6.5 ACE_POSIX_Asynch_Read_Stream类 263
6.7 ACE_POSIX_AIOCB_Proactor管理器实现的分析 265
6.7.1 构造函数 267
6.7.2 start_aio函数 268
6.7.3 handle_events_i函数 271
6.7.4 find_completed_aio函数 274
6.7.5 start_deferred_aio函数 275
6.7.6 application_specific_code函数 277
6.8 异步非I/O事件调度的分析 278
6.8.1 ACE_AIOCB_Notify_Pipe_Manager类 278
6.8.2 post_completion函数 281
6.8.3 putq_result函数 282
6.8.4 process_result_queue函数 283
6.9 定时器事件调度的分析 283
6.9.1 定时器事件操作结果的分析 284
6.9.2 定时器管理器实现的分析 285
6.10 网络连接之accept事件调度的分析 290
6.10.1 Reactor任务分析 292
6.10.2 异步Acceptor分析 293
6.10.3 ACE_POSIX_Asynch_Accept类 294
6.10.4 ACE_POSIX_Asynch_Accept_Result类 300
6.10.5 ACE_Asynch_Acceptor类 302
6.11 Proactor框架的调度分析 311
6.11.1 调度函数分析 311
6.11.2 退出调度分析 311
6.12 进一步学习 313
6.13 总结 313
第7章 Streams框架 314
7.1 管道和过滤器构架模式 314
7.2 Streams框架的概述 315
7.2.1 ACE_Task类 315
7.2.2 put函数 316
7.2.3 put_next函数 316
7.3 Streams框架应用示例 317
7.3.1 Logrec_Reader类 317
7.3.2 Logrec_Timer类 318
7.3.3 Logrec_Suffix类 319
7.3.4 Logrec_Writer类 319
7.3.5 main函数 320
7.4 ACE_Module类的分析 322
7.4.1 open函数 323
7.4.2 link函数 324
7.4.3 ACE_Module的关闭 325
7.5 ACE_Stream类的分析 326
7.5.1 构造函数 326
7.5.2 open函数 327
7.5.3 push函数 329
7.5.4 close函数 330
7.6 进一步学习 331
7.7 总结 331
参考文献 332