70
|
1 ;;; Example of Sending Messages
|
|
2
|
|
3 (defun tooltalk-random-query-handler (msg pat)
|
|
4 (let ((state (get-tooltalk-message-attribute msg 'state)))
|
|
5 (cond
|
|
6 ((eq state 'TT_HANDLED)
|
|
7 (message (get-tooltalk-message-attribute msg arg_val 0)))
|
|
8 ((memq state '(TT_FAILED TT_REJECTED))
|
|
9 (message "Random query turns up nothing")))))
|
|
10
|
|
11 (setq random-query-message
|
|
12 '( class TT_REQUEST
|
|
13 scope TT_SESSION
|
|
14 address TT_PROCEDURE
|
|
15 op "random-query"
|
|
16 args ((TT_INOUT "?" "string"))
|
|
17 callback tooltalk-random-query-handler))
|
|
18
|
|
19 (let ((m (make-tooltalk-message random-query-message)))
|
|
20 (send-tooltalk-message m))
|
|
21
|
|
22 ;;; Example of Receiving Messaegs
|
|
23
|
|
24 (defun tooltalk-display-string-handler (msg pat)
|
|
25 (return-tooltalk-message msg 'reply)
|
|
26 (describe-tooltalk-message msg)
|
|
27 (message (get-tooltalk-message-attribute msg 'arg_val 0)))
|
|
28
|
|
29 (setq display-string-pattern
|
|
30 '(category TT_HANDLE
|
|
31 scope TT_SESSION
|
|
32 op "emacs-eval"
|
|
33 args ((TT_IN "filename" "string"))
|
|
34 callback tooltalk-display-string-handler))
|
|
35
|
|
36 (let ((p (make-tooltalk-pattern display-string-pattern)))
|
|
37 (register-tooltalk-pattern p))
|
|
38
|