Contents
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.
Exercises.
3. Concrete Data Types. Designing and Implementing
a Class. Class Boolean. Discussion Of Boolean.hpp. Class
Index. Discussion of Index.hpp. Exercises.
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. Exercises.
5. Templatized Container Classes. Class Array. Discussion of
Class Array. Class Queue. Discussion Of Class Queue.
Conclusion. Exercises.
6. Utilities and Namespaces. HashFunction. Discussion
of HashFunction. StringUtils. Discussion of StringUtils.
Namespaces. Exercises.
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. Exercises.
8. Automating Resource Management. Class RCPointer.
Discussion of RCPointer. Exercises.
9. Putting The Pieces Together: Runtime
Initialization. A Class For Initialization
Data. Class NVPair. Class HashNVPair. Class IniData. On
Efficiency. Exercises.
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. Exercises.
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? Exercises.
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.
Exercises.
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.