(NOTE:
Each chapter concludes with Exercises.)
1. Introduction. Target Audience. What This Book Is About. Becoming One with C++. Text Overview. Context. Chapter Overview. About the Code.
2. The Web Environment. Definition of Terms. A Trivial Example. Extending the Web Server. A Web-Based Architecture. Summary. Process and Scheduling.
3. Concrete Data Types. Designing and Implementing a Class. Class Boolean. Discussion of Boolean.hpp. Class Index. Discussion of Index.hpp.
4. to Talk of Many Things. A Hierarchical Strategy for Code Organization. Modules and Classes. The Four Canonical Class Members. Default Constructor Rationale. Copy Constructor Rationale. Assignment Operator Rationale. Destructor Rationale. Categories of Class Functions. Type-Specific Behaviors. Accessors. Constructors. Copying and Assignment. Operators. Conversions. Destructor. When to Inline. Const Correctness.
5. Templatized Container Classes. Class Array. Discussion of Class Array. Class Queue. Discussion of Class Queue. Conclusion.
6. Utilities and Namespaces. HashFunction. Discussion of HashFunction. StringUtils. Discussion of StringUtils. Namespaces.
7. Runtime Errors and Exceptions. Detecting Errors. Exceptions. StdException. Discussion of StdException. Exception Specifications. Reporting and Handling Errors. Error Type. Error Severity. Error Details. Error Context. Error Policy. Conclusion.
8. Automating Resource Management. Class RCPointer. Discussion of RCPointer.
9. Putting the Pieces Together: Runtime Initialization. A Class for Initialization Data. Class NVPair. Class HashNVPair. Class IniData. On Efficiency.
10. Program Startup and Execution Environment. Memory Model of Executing Program. Program Execution. Compile-Time Data Definitions Map to Data or Stack Segments. Stack Segment. C and C++ Parameter Passing and Function Call Mechanism. Stack Overflow. Stack Data Lifetime. Heap Segment. Memory Alignment Requirements. Heap Storage Allocation. Heap Storage Deallocation. Heap Fragmentation. Managing the Lifetime of Heap Storage. Do Not Mix malloc() and free() with new and delete. Data Segment. Startup Code Details. Shared Libraries.
11. Sharing Data on a Single Computer. General Considerations. Sharing Data between Threads in a Single Process. Mutual Exclusion Semaphore. Class Mutex. Granularity of Mutual Exclusion. Discussion of Class MTResource. Sharing Data between Processes. Shared Memory. Class SharedMemory. Discussion of Class SharedMemory. Using Class SharedMemory. Why Multiprocessing?
12. Sharing Data between Computers. Sockets. Socket Classes. Discussion of Socket.hpp. Discussion of Socket.cpp. Class SocketServer. Discussion of SocketServer.hpp. Discussion of SocketServer.cpp. Using the Socket Classes.
13. Distributed Architectures. Topologies for Distributed Architectures. Clients And Services. Networked Streams. Command and Event Processors. Request-Response Protocols. Back to the Web. The Web Server and Our Code. Web-Based Application Frameworks. Distributed Objects. Remote Procedure Call. Object Distribution Considerations. CORBA. Choosing the Appropriate Distribution Architecture.
14. Parting Words. Bibliography. Index.