| |
1. Introducing the ToolTalk Service | 1 |
| ..ToolTalk Scenarios | 2 |
| ....Using the ToolTalk Desktop Services Message Set | 2 |
| ....Using the ToolTalk Document and Media Exchange Message |
| .......Set | 4 |
| ....Using the CASE Interoperability Message Sets | 6 |
| ..How Applications Use ToolTalk Messages | 8 |
| ....Sending ToolTalk Messages | 8 |
| ....Message Patterns | 8 |
| ....Receiving ToolTalk Messages | 9 |
| ..ToolTalk Message Distribution | 10 |
| ....Process-Oriented Messages | 10 |
| ....Object-Oriented Messages | 10 |
| ....Determining Message Delivery | 10 |
| ..Modifying Applications to Use the ToolTalk Service | 12 |
2. An Overview of the ToolTalk Service | 13 |
| |
| ..ToolTalk Architecture | 13 |
| ..Starting a ToolTalk Session | 15 |
| ....Background and Batch Sessions | 17 |
| ....X Window System | 17 |
| ....Locating ttsession | 17 |
| ..Maintaining ToolTalk Files and Databases | 18 |
| ..Demonstration Programs | 18 |
3. Message Patterns | 19 |
| ..Message Pattern Attributes | 20 |
| ..Scope Attributes | 22 |
| ....Scoping to a Session Only | 22 |
| ....Scoping to a File Only | 23 |
| ....Scoping to a File in a Session | 24 |
| ....Scoping to a File and/or a Session | 25 |
| ....Adding Files to Scoped Patterns | 26 |
| ..Context Attributes | 27 |
| ..Disposition Attributes | 28 |
4. Setting Up and Maintaining the ToolTalk Processes | 29 |
| ..Location of the ToolTalk Service Files | 29 |
| ..Version | 31 |
| ..Requirements | 31 |
| ..Environment Variables | 31 |
| ....ToolTalk Environment Variables | 31 |
| ....Other Environment Variables | 33 |
| |
| ....Environment Variables Required to Start Programs on Remote |
| .......Hosts | 33 |
| ....Using Context Slots to Create Environment Variables | 35 |
| ..Installing the ToolTalk Database Server | 35 |
| ....When the ToolTalk Service is Installed Elsewhere on the |
| .......System | 36 |
| ..Running the New ToolTalk Database Server | 37 |
| ..Redirecting the ToolTalk Database Server | 37 |
| ....Redirecting the Host Machine | 37 |
| ....Redirecting the File System Partition | 38 |
5. Maintaining Application Information | 41 |
| ..Installing Application Types | 41 |
| ..Examining ToolTalk Type Information | 43 |
| ..Removing ToolTalk Type Information | 43 |
| ..Updating the ToolTalk Service | 44 |
| ..Process Type Errors | 44 |
| ..Using ttsnoop to Debug Messages and Patterns | 45 |
| ....Composing and Sending Messages | 48 |
| ....Composing and Registering Patterns | 50 |
| ....Displaying Message Components | 52 |
| ....Sending Pre-Created Messages | 53 |
| ....Receiving Messages | 54 |
| ....Stop Receiving Messages | 54 |
6. Maintaining Files and Objects Referenced in ToolTalk Messages |
| ..55 |
| |
| ..ToolTalk-Enhanced Shell Commands | 56 |
| ..Maintaining and Updating ToolTalk Databases | 57 |
| ..Displaying, Checking, and Repairing Databases | 57 |
7. Participating in ToolTalk Sessions | 59 |
| ..Including the ToolTalk API Header File | 59 |
| ..Registering with the ToolTalk Service | 60 |
| ....Registering in the Initial Session | 61 |
| ....Registering in a Specified Session | 62 |
| ....Registering in Multiple Sessions | 63 |
| ..Setting Up to Receive Messages | 63 |
| ..Sending and Receiving Messages in the Same Process | 64 |
| ..Sending and Receiving Messages in a Networked Environment | 65 |
| ..Unregistering from the ToolTalk Service | 65 |
8. Sending Messages | 67 |
| ..How the ToolTalk Service Routes Messages | 67 |
| ....Sending Notices | 67 |
| ....Sending Requests | 68 |
| ....Changes in State of Sent Message | 69 |
| ..Message Attributes | 69 |
| ....Address Attribute | 70 |
| ....Scope Attributes | 70 |
| ....Serialization of Structured Data | 74 |
| ..ToolTalk Message Delivery Algorithm | 74 |
| ....Process-Oriented Message Delivery | 74 |
| |
| .....Object-Oriented Message Delivery | 77 |
| .....Otype Addressing | 80 |
| ..Modifying Applications to Send ToolTalk Messages | 80 |
| .....Creating Messages | 80 |
| .....Adding Message Callbacks | 87 |
| .....Sending a Message | 90 |
| ..Examples | 91 |
9. Dynamic Message Patterns | 93 |
| ..Defining Dynamic Messages | 93 |
| .....Creating a Message Pattern | 95 |
| .....Adding a Message Pattern Callback | 95 |
| .....Registering a Message Pattern | 96 |
| .....Deleting and Unregistering a Message Pattern | 96 |
| ..Updating Message Patterns with the Current Session or File . | 97 |
| .....Joining the Default Session | 97 |
| .....Joining Multiple Sessions | 98 |
| .....Joining Files of Interest | 99 |
10. Static Message Patterns | 101 |
| ..Defining Static Messages | 101 |
| ..Defining Process Types | 101 |
| .....Signatures | 102 |
| .....Creating a Ptype File | 103 |
| .....Automatically Starting a Tool | 106 |
| ..Defining Object Types | 107 |
| |
| .....Signatures | 108 |
| .....Creating Otype Files | 109 |
| ..Installing Type Information | 112 |
| ..Checking for Existing Process Types | 112 |
| ..Declaring Process Type | 113 |
| ..Undeclaring Process Types | 115 |
11. Receiving Messages | 117 |
| ..Retrieving Messages | 117 |
| .....Identifying and Processing Messages Easily | 119 |
| .....Recognizing and Handling Replies Easily | 120 |
| ..Checking Message Status | 120 |
| ..Examining Messages | 120 |
| ..Callback Routines | 123 |
| .....Callbacks for Messages Addressed to Handlers | 124 |
| .....Attaching Callbacks to Static Patterns | 125 |
| ..Handling Requests | 125 |
| .....Replying to Requests | 125 |
| .....Rejecting or Failing a Request | 126 |
| ..Destroying Messages | 127 |
12. Objects | 129 |
| ..Object-Oriented Messaging | 129 |
| ..Creating Object Specs | 131 |
| .....Assigning Otypes | 131 |
| .....Determining Object Specification Properties | 132 |
| |
| .....Storing Spec Properties | 132 |
| .....Adding Values to Properties | 132 |
| ..Writing Object Specs | 132 |
| ..Updating Object Specs | 132 |
| ..Maintaining Object Specs | 133 |
| .....Examining Spec Information | 134 |
| .....Comparing Object Specs | 134 |
| .....Querying for Specific Specs in a File | 134 |
| .....Moving Object Specs | 136 |
| ..Destroying Object Specs | 137 |
| ..Managing Object and File Information | 137 |
| .....Managing Files that Contain Object Data | 137 |
| .....Managing Files that Contain ToolTalk Information | 138 |
| ..An Example of Object-Oriented Messaging | 139 |
13. Managing Information Storage | 143 |
| ..Information Provided to the ToolTalk Service | 143 |
| ..Information Provided by the ToolTalk Service | 143 |
| ..Calls Provided to Manage the Storage of Information | 144 |
| .....Marking and Releasing Information | 144 |
| .....Allocating and Freeing Storage Space | 145 |
| ..Special Case: Callback and Filter Routines | 146 |
| .....Callback Routines | 146 |
| .....Filter Routines | 147 |
14. Handling Errors | 149 |
| |
| ..Retrieving ToolTalk Error Status | 150 |
| ..Checking ToolTalk Error Status | 150 |
| ..Returned Value Status | 150 |
| ..Returned Pointer Status | 151 |
| ..Returned Integer Status | 152 |
| ..Broken Connections | 153 |
| ..Error Propagation | 154 |
A. Migrating from the Classing Engine Database to the ToolTalk |
| ..Types Database | 155 |
| ..The ttce2xdr Script | 155 |
| ..Converting the User Database | 155 |
| ..Converting the System Database | 156 |
| ..Converting the Network Database | 157 |
B. A Simple Demonstration of How the ToolTalk Service Works | 159 |
| ..Inter-Application Communication Made Easy | 159 |
| ..Adding Inter-Operability Functionality | 160 |
| .....Modifying the Xedit Application | 160 |
| .....Modifying the Xfontsel Application | 161 |
| ..We Have Tool Communication! | 163 |
| ..Adding ToolTalk Code to the Demonstration Applications | 166 |
| .....Adding ToolTalk Code to the Xedit Files | 166 |
| .....Adding ToolTalk Code to the Xfontsel Files | 174 |
C. The ToolTalk Standard Message Sets | 181 |
| ..The ToolTalk Desktop Services Message Set | 181 |
| |
| .....Why the ToolTalk Desktop Services Message Set was |
| ........Developed | 182 |
| .....Key Benefits of the ToolTalk Desktop Services Message Set | 182 |
| ..The ToolTalk Document and Media Exchange Message Set | 182 |
| .....Why the ToolTalk Document and Media Exchange Message Set |
| ........was Developed | 183 |
| .....Key Benefits of the ToolTalk Document and Media Exchange |
| ........Message Set | 183 |
| ..General ToolTalk Message Definitions and Conventions | 184 |
| ..Errors | 187 |
| ..General ToolTalk Development Guidelines and Conventions . | 188 |
| .....Always Make Anonymous Requests | 189 |
| .....Let Tools Be Started as Needed | 189 |
| .....Reply When Operation has been Completed | 190 |
| .....Avoid Statefulness Whenever Possible | 190 |
| .....Declare One Process Type per Role | 190 |
| ..Developing ToolTalk Applications | 191 |
| ..Messaging Alliances | 193 |
D. Frequently Asked Questions | 195 |