| | Copyright |
| | List of Figures |
| | Foreword |
| | About This Book |
| | | Intended Audience |
| | | Structure and Content |
| | | Related Material |
| | | Acknowledgments |
|
| | Chapter 0. Design Challenges, Middleware Solutions, and ACE |
| | | Section 0.1. Challenges of Networked Applications |
| | | Section 0.2. Networked Application Design Dimensions |
| | | Section 0.3. Object-Oriented Middleware Solutions |
| | | Section 0.4. An Overview of the ACE Toolkit |
| | | Section 0.5. Example: A Networked Logging Service |
| | | Section 0.6. Summary |
|
| | Part I: Object-Oriented Network Programming |
| | | Chapter 1. Communication Design Dimensions |
| | | Section 1.1. Connectionless versus Connection-Oriented Protocols |
| | | Section 1.2. Synchronous versus Asynchronous Message Exchange |
| | | Section 1.3. Message Passing versus Shared Memory |
| | | Section 1.4. Summary |
|
| | | Chapter 2. An Overview of the Socket API |
| | | Section 2.1. An Overview of Operating System IPC Mechanisms |
| | | Section 2.2. The Socket API |
| | | Section 2.3. Limitations of the Socket API |
| | | Section 2.4. Summary |
|
| | | Chapter 3. The ACE Socket Wrapper Facades |
| | | Section 3.1. Overview |
| | | Section 3.2. The ACE_Addr and ACE_INET_Addr Classes |
| | | Section 3.3. The ACE_IPC_SAP Class |
| | | Section 3.4. The ACE_SOCK Class |
| | | Section 3.5. The ACE_SOCK_Connector Class |
| | | Section 3.6. The ACE_SOCK_IO and ACE_SOCK_Stream Classes |
| | | Section 3.7. The ACE_SOCK_Acceptor Class |
| | | Section 3.8. Summary |
|
| | | Chapter 4. Implementing the Networked Logging Service |
| | | Section 4.1. Overview |
| | | Section 4.2. The ACE_Message_Block Class |
| | | Section 4.3. The ACE_InputCDR and ACE_OutputCDR Classes |
| | | Section 4.4. The Initial Logging Server |
| | | Section 4.5. The Client Application |
| | | Section 4.6. Summary |
|
|
| | Part II: Concurrent Object-Oriented Network Programming |
| | | Chapter 5. Concurrency Design Dimensions |
| | | Section 5.1. Iterative, Concurrent, and Reactive Servers |
| | | Section 5.2. Processes versus Threads |
| | | Section 5.3. Process/Thread Spawning Strategies |
| | | Section 5.4. User, Kernel, and Hybrid Threading Models |
| | | Section 5.5. Time-Shared and Real-Time Scheduling Classes |
| | | Section 5.6. Task- versus Message-Based Architectures |
| | | Section 5.7. Summary |
|
| | | Chapter 6. An Overview of Operating System Concurrency Mechanisms |
| | | Section 6.1. Synchronous Event Demultiplexing |
| | | Section 6.2. Multiprocessing Mechanisms |
| | | Section 6.3. Multithreading Mechanisms |
| | | Section 6.4. Synchronization Mechanisms |
| | | Section 6.5. Limitations with OS Concurrency Mechanisms |
| | | Section 6.6. Summary |
|
| | | Chapter 7. The ACE Synchronous Event Demultiplexing Wrapper Facades |
| | | Section 7.1. Overview |
| | | Section 7.2. The ACE_Handle_Set Class |
| | | Section 7.3. The ACE_Handle_Set_Iterator Class |
| | | Section 7.4. The ACE::select() Methods |
| | | Section 7.5. Summary |
|
| | | Chapter 8. The ACE Process Wrapper Facades |
| | | Section 8.1. Overview |
| | | Section 8.2. The ACE_Process Class |
| | | Section 8.3. The ACE_Process_Options Class |
| | | Section 8.4. The ACE_Process_Manager Class |
| | | Section 8.5. Summary |
|
| | | Chapter 9. The ACE Threading Wrapper Facades |
| | | Section 9.1. Overview |
| | | Section 9.2. The ACE_Thread_Manager Class |
| | | Section 9.3. The ACE_Sched_Params Class |
| | | Section 9.4. The ACE_TSS Class |
| | | Section 9.5. Summary |
|
| | | Chapter 10. The ACE Synchronization Wrapper Facades |
| | | Section 10.1. Overview |
| | | Section 10.2. The ACE Guard Classes |
| | | Section 10.3. The ACE Mutex Classes |
| | | Section 10.4. The ACE Readers/Writer Lock Classes |
| | | Section 10.5. The ACE Semaphore Classes |
| | | Section 10.6. The ACE Condition Variable Classes |
| | | Section 10.7. Summary |
|
| | | Appendix A. Design Principles for ACE C++ Wrapper Facades |
| | | Section A.1. Overview |
| | | Section A.2. Use Wrapper Facades to Enhance Type Safety |
| | | Section A.3. Simplify for the Common Case |
| | | Section A.4. Use Hierarchies to Enhance Design Clarity and Extensibility |
| | | Section A.5. Hide Platform Differences Whenever Possible |
| | | Section A.6. Optimize for Efficiency |
| | | Section A.7. Summary |
|
| | | Appendix B. The Past, Present, and Future of ACE |
| | | Section B.1. The Evolution of ACE |
| | | Section B.2. The Road Ahead |
| | | Section B.3. Concluding Remarks |
|
| | | Glossary |
| | | Bibliography |
|