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.
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.
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.
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.
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.
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.
- Readers' Choice Awards 2013
- Advanced Hard Drive Caching Techniques
- Linux Kernel News - November 2013
- Mars Needs Women
- December 2013 Issue of Linux Journal: Readers' Choice
- Raspberry Pi: the Perfect Home Server
- Sublime Text: One Editor to Rule Them All?
- RSS Feeds
- Tech Tip: Really Simple HTTP Server with Python
- Web Administration Scripts
- Reply to comment | Linux Journal
2 hours 25 min ago
- animal pajamas
6 hours 15 min ago
- thanks for you post.
6 hours 22 min ago
- thanks for share, great
23 hours 36 min ago
- There are factors which are
1 day 4 hours ago
- Gnome 3 ?
1 day 5 hours ago
- Reply to comment | Linux Journal
1 day 9 hours ago
- "Redis RethinkDB 4.5%" on Best NoSQL Databases
1 day 19 hours ago
- on the ground
2 days 1 hour ago
- I was able to read the whole
2 days 3 hours ago