Common Desktop Environment: ToolTalk Messaging Overview

Examples

This sections contains examples of how to use the tttrace function.

Registering a Pattern and Sending a Matching Notice

To register a pattern and send a notice that matches the pattern, type:

 % tttrace -a myclientprogram 

Example 4-1 shows the results.


Example 4-1 Registering a Pattern and Sending a Notice

tt_open() = 0x51708=="7.jOHHM X 129.144.153.55 0" (TT_OK) 
tt_fd() = 11 (TT_OK)  tt_pattern_create() = 0x50318 (TT_OK) 
tt_pattern_category_set(0x50318, TT_OBSERVE) = 0 (TT_OK) 
tt_pattern_scope_add(0x50318, TT_SESSION) = 0 (TT_OK) 
tt_pattern_op_add(0x50318, 0x2f308=="Hello World") = 0 (TT_OK) 
tt_default_session() = 0x519e0=="X 129.144.153.55 0" (TT_OK) 
tt_pattern_session_add(0x50318, 0x519e0=="X 129.144.153.55 0") = 0 (TT_OK) 
tt_pattern_register(0x50318) = 0 (TT_OK)  tt_message_create() = 0x51af0 (TT_OK)
tt_message_class_set(0x51af0, TT_NOTICE) = 0 (TT_OK) 
tt_message_address_set(0x51af0, TT_PROCEDURE) = 0 (TT_OK) 
tt_message_scope_set(0x51af0, TT_SESSION) = 0 (TT_OK) 
tt_message_op_set(0x51af0, 0x2f308=="Hello World") = 0 (TT_OK) 
tt_message_send(0x51af0) 	...
  	TT_CREATED => TT_SENT:
  	TT_SENT TT_PROCEDURE TT_NOTICE (TT_DISCARD in TT_SESSION): 0 == TT_OK
  	id:		0 7.jOHHM X 129.144.153.55 0
  	op:		Hello World
  	session:	X 129.144.153.55 0
 	sender:		7.jOHHM X 129.144.153.55 0
= 0 (TT_OK)  
tt_message_receive() 	...
  	Tt_message => procid <7.jOHHM X 129.144.153.55 0>
  	TT_SENT TT_PROCEDURE TT_NOTICE (TT_DISCARD in TT_SESSION): 0 == TT_OK
  	id:		0 7 jOHHM X 129.144.153.55 0
  	op:		Hello World
  	session:	X 129.144.153.55 0
 	sender:		7.jOHHM X 129.144.153.55 0
  	pattern:	0:7.jOHHM X 129.144.153.55 0 
= 0x51af0 (TT_OK) 

To see ttsession's view of the message flow, type:

 % tttrace -a

ttsession's view of mylientprogram's message flow is shown in Example 4-2.


Example 4-2 ttsession's View of Trace

tt_message_reply:
  	TT_SENT => TT_HANDLED:
  		TT_HANDLED TT_PROCEDURE TT_REQUEST (TT_DISCARD in TT_SESSION): 0 == TT_OK
  		id:		0 2.jOHHM X 129.144.153.55 0
  		op:		Session_Trace
  		args:		TT_IN string: "> /tmp/traceAAAa002oL; version 1; states"[...]
  		session:	X 129.144.153.55 0
 		sender:		2.jOHHM X 129.144.153.55 0
  		pattern:	0:X 129.144.153.55 0
 		handler:	0.jOHHM X 129.144.153.55 0 
 		Tt_message => procid <2.jOHHM X 129.144.153.55 0>  
tt_message_send:
  	   TT_CREATED TT_PROCEDURE TT_NOTICE (TT_DISCARD in TT_SESSION): 0 == TT_OK
  	   id:		0 7.jOHHM X 129.144.153.55 0
      op:		Hello World
  	   session:	X 129.144.153.55 0
  	   sender:		7.jOHHM X 129.144.153.55 0  	TT_CREATED => TT_SENT:
  		TT_SENT TT_PROCEDURE TT_NOTICE (TT_DISCARD in TT_SESSION): 0 == TT_OK
  		id:		0 7.jOHHM X 129.144.153.55 0 
 		op:		Hello World
  		session:	X 129.144.153.55 0 
 		sender:		7.j HHM X 129.144.153.55 0
  	   Tt_message & Tt_pattern { 
 		id:		0:7.jOHHM X 129.144.153.55 0
  		category:	TT_OBSERVE
  		scopes:		TT_SESSION
      sessions:	X 129.144.153.55 0
  		ops:		Hello World
  	   } == 3;
      Tt_message => procid <7.jOHHM X 129.144.153.55 0>


Note -

The first message traced will almost always be ttsession's reply to the request sent to it by ttrace.


Tracing a Message Flow

To trace the message flow in a specific, non-default session, type:

 % tttrace -S "01 15303 1342177284 1 0 13691 129.144.153.55 2"

where "01 15303 1342177284 1 0 13691 129.144.153.55 2" is the specific, non-default session to be traced.