Mercurial > hg > xemacs-beta
diff src/tooltalk.doc @ 272:c5d627a313b1 r21-0b34
Import from CVS: tag r21-0b34
author | cvs |
---|---|
date | Mon, 13 Aug 2007 10:28:48 +0200 |
parents | 360340f9fd5f |
children | 8626e4521993 |
line wrap: on
line diff
--- a/src/tooltalk.doc Mon Aug 13 10:27:41 2007 +0200 +++ b/src/tooltalk.doc Mon Aug 13 10:28:48 2007 +0200 @@ -7,18 +7,18 @@ if needed. The Lisp interface departs from the C API in a few ways: - Tooltalk is initialized automatically at emacs startup-time. Messages -can only be sent other Tooltalk applications connected to the same -X11 server that emacs is running on. +can only be sent other Tooltalk applications connected to the same +X11 server that emacs is running on. - There are fewer entry points, polymorphic functions with keyword arguments are used instead. - The callback interface is simpler and marginally less functional. -A single callback may be associated with a message or a pattern, +A single callback may be associated with a message or a pattern, the callback is specified with a Lisp symbol (the symbol should have a function binding). -- The session attribute for messages and patterns is always +- The session attribute for messages and patterns is always initialized to the default session. - Anywhere a Tooltalk enum constant, e.g. TT_SESSION, is valid one @@ -30,7 +30,7 @@ Here's a simple example of a handler for a message that tells emacs to display a string in the mini-buffer area. The message -operation is called "emacs-display-string", it's first (0th) argument +operation is called "emacs-display-string", its first (0th) argument is the string to display: (defun tooltalk-display-string-handler (msg) @@ -49,7 +49,7 @@ * Example: Sending Messages Here's a simple example that sends a query to another application -and then displays it's reply. Both the query and the reply are +and then displays its reply. Both the query and the reply are stored in the first argument of the message. (defun tooltalk-random-query-handler (msg) @@ -61,8 +61,8 @@ (message "Random query turns up nothing"))))) (defvar random-query-message - '( class TT_REQUEST - scope TT_SESSION + '( class TT_REQUEST + scope TT_SESSION address TT_PROCEDURE op "random-query" args '((TT_INOUT "?" "string")) @@ -79,11 +79,11 @@ (make-tooltalk-message attributes) Create a tooltalk message and initialize its attributes. -The value of attributes must be a list of alternating keyword/values, -where keywords are symbols that name valid message attributes. +The value of attributes must be a list of alternating keyword/values, +where keywords are symbols that name valid message attributes. For example: - (make-tooltalk-message + (make-tooltalk-message '(class TT_NOTICE scope TT_SESSION address TT_PROCEDURE @@ -91,7 +91,7 @@ args ("arg1" 12345 (TT_INOUT "arg3" "string")))) Values must always be strings, integers, or symbols that -represent Tooltalk constants. Attribute names are the same as +represent Tooltalk constants. Attribute names are the same as those supported by set-tooltalk-message-attribute, plus 'args. The value of args should be a list of message arguments where @@ -99,13 +99,13 @@ (mode [value [type]]) or just value -Where mode is one of TT_IN, TT_OUT, TT_INOUT and type is a string. -If type isn't specified then "int" is used if the value is a +Where mode is one of TT_IN, TT_OUT, TT_INOUT and type is a string. +If type isn't specified then "int" is used if the value is a number otherwise "string" is used. If type is "string" then value is converted to a string (if it isn't a string already) with -prin1-to-string. If only a value is specified then mode defaults +prin1-to-string. If only a value is specified then mode defaults to TT_IN. If mode is TT_OUT then value and type don't need -to be specified. You can find out more about the semantics and +to be specified. You can find out more about the semantics and uses of ToolTalk message arguments in chapter 4 of the Tooltalk Programmers Guide. @@ -113,7 +113,7 @@ (send-tooltalk-message msg) -Send the message on it's way. Once the message has been sent it's +Send the message on its way. Once the message has been sent it's almost always a good idea to get rid of it with destroy-tooltalk-message. @@ -137,11 +137,11 @@ represented by fixnums (small integers), opnum is converted to a string, and disposition is converted to a fixnum. We convert opnum (a C int) to a string, e.g. 123 => \"123\" because there's no guarantee that opnums will fit -within the range of Emacs Lisp integers. +within the range of Emacs Lisp integers. [TBD] Use the 'plist attribute instead of C API 'user attribute -for user defined message data. To retrieve the value of a message property -specify the indicator for argn. For example to get the value of a property +for user defined message data. To retrieve the value of a message property +specify the indicator for argn. For example to get the value of a property called 'rflagg, use (get-tooltalk-message-attribute msg 'plist 'rflag) @@ -150,7 +150,7 @@ 'arg_ival (integers), or 'arg_bval (strings with embedded nulls), attributes. Because integer valued arguments can be larger than Emacs Lisp integers 'arg_ival yields a string. If the value is will fit within 24 bits then -convert it to an integer with string-to-int. For example to get the integer +convert it to an integer with string-to-int. For example to get the integer value of the third argument: (string-to-int (get-tooltalk-message-attribute msg 'arg_ival 2)) @@ -158,7 +158,7 @@ As you can see, argument numbers are zero based. The type of each arguments can be retrieved, with the 'arg_type attribute, however Tooltalk doesn't define any semantics for the string value of 'arg_type. Conventionally -"string" is used for strings and "int" for 32 bit integers. Note that +"string" is used for strings and "int" for 32 bit integers. Note that Emacs Lisp stores the lengths of strings explicitly (unlike C) so treating the value returned by 'arg_bval like a string is fine. @@ -169,7 +169,7 @@ Initialize one ToolTalk message attribute. -Attribue names and values are the same as for get-tooltalk-message-attribute. +Attribue names and values are the same as for get-tooltalk-message-attribute. A property list is provided for user data (instead of the 'user message attribute), see get-tooltalk-message-attribute. @@ -180,7 +180,7 @@ changed to TT_HANDLED (or TT_FAILED), so that reply argument values can be used. -If one of the argument attributes is specified, 'arg_val, 'arg_ival, or +If one of the argument attributes is specified, 'arg_val, 'arg_ival, or 'arg_bval then argn must be the number of an already created argument. Arguments can be added to a message with add-tooltalk-message-arg. @@ -211,7 +211,7 @@ (destroy-tooltalk-message msg) Apply tt_message_destroy to the message. It's not necessary -to destroy messages after they've been proccessed by a message or +to destroy messages after they've been proccessed by a message or pattern callback, the Lisp/Tooltalk callback machinery does this for you. @@ -223,37 +223,37 @@ (make-tooltalk-pattern attributes) Create a tooltalk pattern and initialize its attributes. -The value of attributes must be a list of alternating keyword/values, +The value of attributes must be a list of alternating keyword/values, where keywords are symbols that name valid pattern attributes or lists of valid attributes. For example: - (make-tooltalk-pattern + (make-tooltalk-pattern '(category TT_OBSERVE scope TT_SESSION op ("operation1" "operation2") args ("arg1" 12345 (TT_INOUT "arg3" "string")))) -Attribute names are the same as those supported by +Attribute names are the same as those supported by add-tooltalk-pattern-attribute, plus 'args. Values must always be strings, integers, or symbols that -represent Tooltalk constants or lists of same. When a list -of values is provided all of the list elements are added to +represent Tooltalk constants or lists of same. When a list +of values is provided all of the list elements are added to the attribute. In the example above, messages whose op attribute is "operation1" or "operation2" would match the pattern. -The value of args should be a list of pattern arguments where +The value of args should be a list of pattern arguments where each pattern argument has the following form: (mode [value [type]]) or just value -Where mode is one of TT_IN, TT_OUT, TT_INOUT and type is a string. -If type isn't specified then "int" is used if the value is a +Where mode is one of TT_IN, TT_OUT, TT_INOUT and type is a string. +If type isn't specified then "int" is used if the value is a number otherwise "string" is used. If type is "string" then value is converted to a string (if it isn't a string already) with -prin1-to-string. If only a value is specified then mode defaults +prin1-to-string. If only a value is specified then mode defaults to TT_IN. If mode is TT_OUT then value and type don't need -to be specified. You can find out more about the semantics and +to be specified. You can find out more about the semantics and uses of ToolTalk pattern arguments in chapter 3 of the Tooltalk Programmers Guide. @@ -273,24 +273,24 @@ (add-tooltalk-pattern-attribute value pat indicator) Add one value to the indicated pattern attribute. The names of attributes -are the same as the Tooltalk accessors used to set them less the -"tooltalk_pattern_" prefix and the "_add" suffix). For example -the name of the attribute for tt_pattern_dispostion_add attribute -is 'disposition. The 'category attribute is handled specially, +are the same as the Tooltalk accessors used to set them less the +"tooltalk_pattern_" prefix and the "_add" suffix). For example +the name of the attribute for tt_pattern_dispostion_add attribute +is 'disposition. The 'category attribute is handled specially, since a pattern can only be a member of one category (TT_OBSERVE or TT_HANDLE. Callbacks are handled slightly differently than in the C Tooltalk API. The value of callback should be the name of a function of one argument. -It will be called each time the pattern matches an incoming message. +It will be called each time the pattern matches an incoming message. (add-tooltalk-pattern-arg pat mode type value) -Add one, fully specified, argument to a tooltalk pattern. Mode must +Add one, fully specified, argument to a tooltalk pattern. Mode must be one of TT_IN, TT_INOUT, or TT_OUT, type must be a string. -Value can be an integer, string or nil. If value is an integer then +Value can be an integer, string or nil. If value is an integer then an integer argument (tt_pattern_iarg_add) added otherwise a string argument is added. At present there's no way to add a binary data argument. @@ -323,7 +323,7 @@ - Message and patterns should support a plist attribute. This would be based on one more Tooltalk user data key. This would also make -it useful to apply the message and pattern callbacks to +it useful to apply the message and pattern callbacks to both the message and the matching pattern.