DDE concepts and definitions
Before reading about building a DDE server or client, become familiar with the following concepts and terms.
DDE client
An application that acts as the receiver side of a DDE conversation with a DDE server application. In VA Smalltalk, the DdeClient class implements the function and protocol to support the client side of a DDE conversation. An instance of DdeClient can connect to a DDE server (any application, Smalltalk or otherwise, that follows the particular platform DDE server protocol) and then make data requests to that server.
DDE server
An application that acts as the producer side of a DDE conversation with a DDE client application (any application, Smalltalk or otherwise, that follows the particular platform DDE server protocol).
DDE event notification
Occurs in an application when a message arrives from the other side of a DDE connection. For example, a DDE client application receives an event notification when a particular piece of data in the DDE server application changes, or a DDE server application receives an event notification whenever a client application requests a connection.
Default database
Used by a DdeServerManager to hold all the items that the DdeServerManager makes available to DDE clients through default processing.
Default processing
Occurs when a server application enables the VA Smalltalk DDE system to handle all of the interaction with the DDE client. The server application creates a database of topics along with the name of each data item within a topic, the format specification of each data item, and the current value of each data item. The server application's only role is to update the appropriate database whenever a data item changes.
Callback
The primary means by which an application responds to DDE events. Callbacks are procedures within an application that take some action in response to events emanating from a DDE client or server. In VA Smalltalk, callbacks are methods in an application class that is using a DdeClient or DdeServerManager to manage a DDE conversation. These methods (that is, their selectors) along with the application object itself are registered with the DDE objects, so that when a particular DDE event occurs, the DDE object "calls back" to the application by sending the specified method to the specified application object. If callbacks are not registered with a DdeServerManager for one or more events, then well-defined default processing will take place.
Application
In this chapter, the program that creates and uses the
DdeServerManager, or the
DdeClient, or both. The word "application" is often used as one of the three qualifiers for a piece of data. In DDE terms, a piece of data is identified by an application, topic, and item. This chapter, however, identifies data by server name, topic, and item. In VA Smalltalk, the name of a DDE server is simply a Smalltalk
String passed as a parameter when the
DdeServerManager is created. Here is an example of the server name, topic, and item hierarchy:
Topic
Identifies a logical grouping of data items within a named DDE server. A piece of data is usually identified by an application (server name), topic, and item. In a spreadsheet application, for example, the topic might be the file name of a loaded spreadsheet.
Item
Identifies a piece of data within a named topic of a named DDE server. An item's identification consists of a name and format specifier. The path to a data item is usually denoted by a hierarchy of application (server name), topic, and item.
Format
Specifies how a piece of data is to be interpreted by the receiving side of a DDE conversation. In VA Smalltalk, a format is specified by a Smalltalk String (case insensitive). All data transferred to/from a DdeClient or a DdeServerManager must be contained in a ByteArray object. The format string tells each side of the DDE conversation how that data is to be interpreted. There are certain predefined formats. The only exception to this rule is the format 'String' where the item being transferred must also be a Smalltalk String.
System topics
A set of predefined topics and items that provide information of general interest to DDE clients.
Table 41 shows the predefined topics and items that are supported by the default processing of the
DdeServerManager.
Table 41. System topics
| | | |
System | Topics | String | A tab-delimited string of all the topics supported by this server |
System | Formats | String | A tab-delimited string of all the formats for all items |
System | SysItems | String | A tab-delimited string of all the items under the System topic |
System | TopicItemList | String | A tab-delimited string of all the items under the System topic |
All topics | TopicItemList | String | A tab-delimited string of all the items supported by a topic |
All topics | Formats | String | A tab-delimited string of all the formats supported by this topic |
Hotlink
A request by a DDE client to a DDE server to be notified immediately when a particular data item changes, and to include with that notification the value of the changed data item. That is, when a hotlinked data item has changed, the DDE server generates an event notification back to the client and sends the changed piece of data along with that event notice.
Warmlink
A request by a DDE client to a DDE server to be notified when a particular data item changes. Unlike a hotlink, the DDE server only sends the event back to the client and it does not send the changed data item along with the notice. With a warmlink, the DDE client can explicitly request the changed data from the server anytime after it has received notification of the change.
Coldlink
A request by a DDE client to a DDE server to unlink an existing hotlink or warmlink to a particular data item.
Last modified date: 12/21/2017