CDE Plug-and-Play

A major strength of the Common Desktop Evnironment is its programming infrastructure, for example, ToolTalk. This article illustrates client and server plug-and-play through the use of the Desktop's Application Programming Interfaces (APIs).
ToolTalk Client

The ttchmod ToolTalk client (see Listing 5) is much simpler than the ttchmodd ToolTalk server. The client opens a ToolTalk process and locates the session. The TtChmod process-type message request consists of the Chmod operation with the file name and mode input arguments. It is sent to the ToolTalk Service to be brokered to a registered server application accepting the ptype pattern. However, note that this example omits error checking and garbage collection with tt_mark and tt_release.

Desktop Action

The Desktop Action database in CDE describes methods and objects for applications to act upon. CDE's Desktop Service can describe an action like DtChmod, shown in Listing 6, that can be forwarded through the ToolTalk Service to ttchmodd. If the action does not receive the appropriate arguments, then the Desktop can prompt the user, as shown in Figure 3.

Figure 3. dtaction

The relationship of the Desktop Action definitions to CDE methods is similar to the relationship of ptype definitions to ToolTalk processes. For an example of Desktop actions and data types, run dttypes at the command line to dump the database to the screen.

Desktop Service Client

The APIs of the Desktop Service can invoke actions registered in the Desktop database either from a C program or from a dtksh script, as shown in Listing 7. The dtchmod.ds dtksh script prompts the user, with the message dialogue, as shown in Figure 4, to confirm with the user before requesting changes to the file's mode.

Figure 4. dtchmod

In addition to calling Desktop actions from C programs and dtksh shell scripts, users can initiate requests from the command line, as shown here:

dtaction DtChmod /etc/motd 644

If the appropriate arguments are given, then the action is forwarded to ToolTalk; otherwise, the user is first queried, as shown in Figure 3.

Plug and Play

We have seen how the ttchmodd service registered with ToolTalk can receive messages matching the TtChmod ptype pattern from ToolTalk clients, from Desktop clients written in either C or dtksh, from the command line and from double clicking on file object icons. These examples demonstrate how client and server applications can be developed independently, mixed and matched, and upgraded separately through plug-and-play. A ToolTalk-enabled application service registered with its ptype definition can be developed without specific knowledge of its counterpart.

CDE defines a message dictionary of desktop-specific ToolTalk process types, operations and arguments as seen from viewing the database. Others, such as Computer-Aided Design (CAD) and Electronic Design Automation (EDA) services have developed supplemental dictionaries. You can use existing ptypes or define your own, but the important point to know is how to register the process-type identifier, operation and arguments.


George Kraft is an Advisory Software Engineer for IBM's Network Computer Division. He has previously worked on CDE V2.1 and V1.0 for IBM's RS/6000 Division and on X and Motif for Texas Instruments' Computer Systems Division. He has a BS in Computer Science and Mathematics from Purdue University. He can be reached via e-mail at


White Paper
Linux Management with Red Hat Satellite: Measuring Business Impact and ROI

Linux has become a key foundation for supporting today's rapidly growing IT environments. Linux is being used to deploy business applications and databases, trading on its reputation as a low-cost operating environment. For many IT organizations, Linux is a mainstay for deploying Web servers and has evolved from handling basic file, print, and utility workloads to running mission-critical applications and databases, physically, virtually, and in the cloud. As Linux grows in importance in terms of value to the business, managing Linux environments to high standards of service quality — availability, security, and performance — becomes an essential requirement for business success.

Learn More

Sponsored by Red Hat

White Paper
Private PaaS for the Agile Enterprise

If you already use virtualized infrastructure, you are well on your way to leveraging the power of the cloud. Virtualization offers the promise of limitless resources, but how do you manage that scalability when your DevOps team doesn’t scale? In today’s hypercompetitive markets, fast results can make a difference between leading the pack vs. obsolescence. Organizations need more benefits from cloud computing than just raw resources. They need agility, flexibility, convenience, ROI, and control.

Stackato private Platform-as-a-Service technology from ActiveState extends your private cloud infrastructure by creating a private PaaS to provide on-demand availability, flexibility, control, and ultimately, faster time-to-market for your enterprise.

Learn More

Sponsored by ActiveState