home *** CD-ROM | disk | FTP | other *** search
/ Amiga Developer CD v1.2 / amidev_cd_12.iso / devcon / sanfrancisco_1989 / sf-devcon89.1 / commodities / include / cx / cxusr.h < prev    next >
C/C++ Source or Header  |  1992-08-27  |  4KB  |  125 lines

  1. /* cxusr.h -- commodoties exchange application permissible include */
  2.  
  3. /*
  4. Copyright (c) 1987, 1988, 1989 Jim Mackraz and I&I Computing.
  5.  
  6. Executables based on this information may be used in software
  7. for Commodore Amiga computers.  All other rights reserved.
  8. This information is provided "as is"; no warranties are made.
  9. All use is at your own risk, and no liability or responsibility
  10. is assumed.
  11. */
  12.  
  13. #ifndef CXUSR_H
  14. #define CXUSR_H 1
  15.  
  16. #ifndef SYSALL_H
  17. #include "cx/sysall.h"
  18. #endif
  19.  
  20. #ifndef IX_H
  21. #include "cx/ix.h"
  22. #endif
  23.  
  24. #ifndef BROKER_H
  25. #include "cx/broker.h"
  26. #endif
  27.  
  28. /** Fake data types for system private objects    */
  29. #ifndef CX_H
  30. typedef    LONG    CxObj;
  31. typedef    LONG    CxMsg;
  32. #endif
  33.  
  34. /* Pointer to Function returning Long    */
  35. typedef LONG    (*PFL)();
  36.  
  37.  
  38. /*********************************/
  39. /**    Commodities Object Types    **/
  40. /*********************************/
  41. #define    CX_INVALID        0        /* not a valid object (probably null)    */
  42. #define    CX_FILTER        1        /* input event messages only    */
  43. #define    CX_TYPEFILTER    2        /* filter on message type        */
  44. #define    CX_SEND            3        /* sends a message                */
  45. #define    CX_SIGNAL        4        /* sends a signal                */
  46. #define    CX_TRANSLATE    5        /* translates IE into chain        */
  47. #define CX_BROKER        6        /* application representative    */
  48. #define    CX_DEBUG        7        /* dumps kprintf to serial port    */
  49. #define    CX_CUSTOM        8        /* application provids function    */
  50. #define CX_ZERO            9        /* system terminator node        */
  51.  
  52. /*****************/
  53. /**    CxMsg types    **/
  54. /*****************/
  55. #define CXM_UNIQUE    (1 << 4)    /* sent down broker by CxBroker()    */
  56. /* Obsolete: subsumed by CXM_COMMAND (below)    */
  57.  
  58. /* Messages of this type rattle around the Commodities input network.
  59.  * They will be sent to you by a Sender object, and passed to you
  60.  * as a synchronous function call by a Custom object.
  61.  *
  62.  * The message port or function entry point is stored in the object,
  63.  * and the ID field of the message will be set to what you arrange
  64.  * issuing object.
  65.  *
  66.  * The Data field will point to the input event triggering the
  67.  * message.
  68.  */
  69. #define CXM_IEVENT    (1 << 5)
  70.  
  71. /* These messages are sent to a port attached to your Broker.
  72.  * They are sent to you when the controller program wants your
  73.  * program to do something.  The ID field identifies the command.
  74.  * 
  75.  * The Data field will be used later.
  76.  */
  77. #define CXM_COMMAND    (1 << 6)
  78.  
  79. /* ID values    */
  80. #define CXCMD_DISABLE    (15)    /* please disable yourself    */
  81. #define CXCMD_ENABLE    (17)    /* please enable yourself    */
  82. #define CXCMD_APPEAR    (19)    /* open your window, if you can    */
  83. #define CXCMD_DISAPPEAR    (21)    /* go dormant                */
  84. #define CXCMD_KILL        (23)    /* go away for good            */
  85. #define CXCMD_UNIQUE    (25)    /* someone tried to create a broker
  86.                                  * with your name.  Suggest you Appear.
  87.                                  */
  88.  
  89. /* return values for BrokerCommand():    */
  90. #define CMDE_OK            (0)
  91. #define CMDE_NOBROKER    (-1)
  92. #define CMDE_NOPORT        (-2)
  93. #define CMDE_NOMEM        (-3)
  94.  
  95. /* IMPORTANT NOTE: for V5:
  96.  * Only CXM_IEVENT messages are passed through the input network.
  97.  *
  98.  * Other types of messages are sent to an optional port in your broker.
  99.  *
  100.  * This means that you must test the message type in your message handling,
  101.  * if input messages and command messages come to the same port.
  102.  *
  103.  * Older programs have no broker port, so processing loops which
  104.  * make assumptions about type won't encounter the new message types.
  105.  *
  106.  * The TypeFilter CxObject is hereby obsolete.
  107.  *
  108.  * It is less convenient for the application, but eliminates testing
  109.  * for type of input messages.
  110.  */
  111.  
  112. /**********************************************************/
  113. /**    CxObj Error Flags (return values from CxObjError())    **/
  114. /**********************************************************/
  115. #define COERR_ISNULL        1    /* you called CxError(NULL)                */
  116. #define COERR_NULLATTACH    2    /* someone attached NULL to my list        */
  117. #define COERR_BADFILTER        4    /* a bad filter description was given    */
  118. #define COERR_BADTYPE        8    /* unmatched type-specific operation     */
  119.  
  120. #ifndef CXFUNCTIONS_H
  121. #include "cx/cxfunctions.h"
  122. #endif
  123.  
  124. #endif
  125.