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.