home *** CD-ROM | disk | FTP | other *** search
/ Acorn User 2 / AUCD2.iso / program / vista.arc / !Vista / h / channel next >
Text File  |  1996-01-25  |  2KB  |  61 lines

  1. // **************************************************************************
  2. //                     Copyright 1996 David Allison
  3. //
  4. //             VV    VV    IIIIII     SSSSS     TTTTTT       AA
  5. //             VV    VV      II      SS           TT       AA  AA
  6. //             VV    VV      II        SSSS       TT      AA    AA
  7. //              VV  VV       II           SS      TT      AAAAAAAA
  8. //                VV       IIIIII     SSSS        TT      AA    AA
  9. //
  10. //                    MULTI-THREADED C++ WIMP CLASS LIBRARY
  11. //                                for RISC OS
  12. // **************************************************************************
  13. //
  14. //             P U B L I C    D O M A I N    L I C E N C E
  15. //             -------------------------------------------
  16. //
  17. //     This library is copyright. You may not sell the library for
  18. //     profit, but you may sell products which use it providing
  19. //     those products are presented as executable code and are not
  20. //     libraries themselves.  The library is supplied without any
  21. //     warranty and the copyright owner cannot be held responsible for
  22. //     damage resulting from failure of any part of this library.
  23. //
  24. //          See the User Manual for details of the licence.
  25. //
  26. // *************************************************************************
  27.  
  28. //
  29. // a channel
  30. //
  31.  
  32. #ifndef __channel_h
  33. #define __channel_h
  34.  
  35. #include "Vista:defs.h"
  36.  
  37. #ifndef __delete_h
  38. #include "Vista:delete.h"
  39. #endif
  40.  
  41. class Task ;
  42.  
  43. //
  44. // a channel consists of a communications pipe to another task.
  45. //
  46.  
  47. class Channel : virtual public DeferredDelete
  48.    {
  49.    public:
  50.       Channel(Task *task, char *name) ;         // create a new channel from a task
  51.       virtual ~Channel() ;
  52.       virtual void receive (int action, int task, int my_ref, int your_ref, int data_length, void *data) ;   // receive a message
  53.       virtual int accept (int your_ref) = 0 ;   // accept a message?
  54.       char *name ;
  55.    protected:
  56.       Task *task ;
  57.    } ;
  58.  
  59.  
  60. #endif
  61.