Contents


Preface
The samples
What to expect with version B
The code and documentation
How the chapters are organized
Reading notation diagrams
Class architecture diagrams
Interaction diagrams
Taligent Chat
High-level architecture
Model subsystem
Design notes
Changing persistent data
Streaming relevant data
Model changes
Supporting mutable data
Protocol subsystem
Design notes
Separating the handler from its clients
The model owns TChatHandler
Processing a message
Simplified interface
Announcing a new member
Semaphores and locks
Interface subsystem
Design notes
MChatView and MChatHandler
Actions handled by the view
Buttons are tied to actions
Resizing windows
Interesting mechanisms
Bringing up a dialog
Joining a caucus
Receiving a caucus message
Extensions
Extending the Chat protocol
Providing multiple views
Changing the user interface
Making the Taligent Chat discussion persist
Implementing Undo
Removing delay on sending
Removing delay on receiving
Concurrent Actors
High-level architecture
Universe subsystem
Design notes
Destroying objects through a thread
No thread priorities
Minimal protocol for TAbstractActor
Game subsystem
Design notes
Multiple asteroid classes
Adding levels of difficulty
Interface subsystem
Design notes
Choosing a program framework
Choosing presentation classes
Choosing an off-screen buffer
Movement subsystem
Design notes
Using a single mover thread
Avoiding deadlocks in the mover thread
Keeping time
The mover thread doesn't own movable objects
Refresh subsystem
Design notes
Avoiding refresh overkill
Two-phase refresh
Avoiding deadlocks in the refresh thread
No back-to-front ordering necessary
The refresh thread doesn't own refreshing objects
Collision subsystem
Design notes
Avoiding a separate thread for collision
Using notification
Dynamic typing
Local utility classes
Design notes
Separating the thread from its state
Creating a type-safe queue
Interesting mechanisms
Destroying actors cleanly
Queuing an actor for deletion
Deleting queued actors
Pausing the mover and refresh threads
Locking the thread, not the data
Refreshing the screen
Sending refresh notification
Updating the view from the buffer
Extensions
Interesting play
Efficient screen updating
Refresh times
Movement times
Collision behaviors
Stock Browser
High-level architecture
Stock Server subsystem
Design notes
To stream or not to stream
It's better to be abstract
RPC services versus Message Streams
Stock Picker subsystem
Design notes
Access to stock data
Support for drag and drop
Look-up by name
Stock Viewer subsystem
Design notes
Supporting multiple views
Support for drag and drop functionality
Graphics subsystem
Design notes
An extensible design
MGraphic versus TView
Common Classes
Interesting mechanisms
Graphing a Stock
Choosing an item from the View menu
Reconstructing a graph
Extensions
Providing additional stock information
Graphing more than one stock
Adding and modifying graphs
Providing a "live" server
Simplified stock data
WebRunner Sample
High-level architecture
Web Document subsystem
Design notes
Editable text with embedded components
HandleModelChanged
TWebModel persistence
Data Access subsystem
Design notes
Accommodating CERN
Encapsulated C library
TScrapItem
Translation subsystem
Design Notes
Global translators
Web Link subsystem
Design notes
Context-sensitive components
TWebLink isn't a model
Command subsystem
Design notes
Capturing Mosaic functionality
Operating on an entire model selection
Graphic Document subsystem
Design notes
Component reusability
Non-model drag and drop
Interesting mechanisms
Activating a hypertext link
Acquiring the viewer's reference
In-place opening
Out-of-place opening
Extensions
Supporting varying media types
Reusing link and image document components
Implementing additional HTML protocol
Other common browser features
Taligent Selection Tool
High-level architecture
Mapping subsystem
Design notes
Coordinating geometries
Single view for MSelectionMapping
Feedback subsystem
Design notes
Feedback view
Target subsystem
Design Notes
Downsizing
Coordinating coordinates
Tool subsystem
Design notes
Interactors
Convenience subsystem
Interesting mechanisms
Providing drop acceptance feedback
Supporting a selection
Dragging a selection
Extensions
Make selecting undoable
Make dropping undoable
Make TDOMDocument-ComponentView a behavior
Mechanism Grab Bag

[Contents] [Previous] [Next]
Click the icon to mail questions or corrections about this material to Taligent personnel.
Copyright©1995 Taligent,Inc. All rights reserved.

Generated with WebMaker