Skip to:Content
|
Bottom
Cover image for Distributed application programming in C++
Title:
Distributed application programming in C++
Personal Author:
Publication Information:
Upper Saddle River, NJ : Prentice Hall PTR, 2000
Physical Description:
1 v+ 1 CD-ROM (CP 4154)
ISBN:
9780130871336

Available:*

Library
Item Barcode
Call Number
Material Type
Item Category 1
Status
Searching...
30000010050412 QA76.73.C153 M22 2000 Open Access Book Book
Searching...

On Order

Summary

Summary

Everything in the text is presented from a practical point of view based on real-world experience. The book takes a deeper look at why the various features of C++ are present, what programming styles they are intended to support, how and when to make best use of various standard idioms, and also the larger context in which development takes place. This book covers the software development process, source code organization, build time issues, the run time environment, etc.


Author Notes

RANDALL A. MADDOX is a consulting software engineer who has worked on a wide range of projects, including Web applications, distributed systems, client/server systems, embedded systems, and database applications. In addition to working on real projects, he also teaches a 16-week C++ class to working enterprise developers.


Table of 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
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
Go to:Top of Page