home *** CD-ROM | disk | FTP | other *** search
/ C++ Games Programming / CPPGAMES.ISO / thx / include / msgfold.h < prev    next >
C/C++ Source or Header  |  1995-05-08  |  1KB  |  49 lines

  1. // -------- msgfold.h
  2.  
  3. #ifndef  MSGFOLD_H
  4. #define  MSGFOLD_H
  5.  
  6. #include "queue.h"
  7. #include "folder.h"
  8. #include "handler.h"
  9. #include "debug.h"
  10.  
  11.  
  12. class Hand;
  13.  
  14. class MessageFolder : public Folder  {
  15.   EventHandler messagenumber[MAXMESSAGE];
  16.   Queue msgQ;
  17.   friend class MessageServer;
  18. public:
  19.   MessageFolder() : Folder(messagenumber, MAXMESSAGE) { }
  20.   void add_message(Hand*,int rate,callback);
  21.   void del_message(Hand*,int rate,callback);
  22.   void reset();
  23.   void send(int,int,int);
  24.   void dispatch(int, int, int);
  25. };
  26.  
  27. inline void MessageFolder::add_message(Hand* h,
  28.                                           int msg,callback cb)
  29. {
  30.   Assert(msg >= 0 && msg < MAXMESSAGE);
  31.   messagenumber[msg].add(h,cb);
  32. }
  33.  
  34. inline void MessageFolder::del_message(Hand* h,
  35.                                           int msg,callback cb)
  36. {
  37.   Assert(msg >= 0 && msg < MAXMESSAGE);
  38.   messagenumber[msg].del(h,cb);
  39. }
  40.  
  41. inline void MessageFolder::send(int msg,int data1, int data2)
  42. {
  43.   Assert(msg >= 0 && msg < MAXMESSAGE);
  44.   msgQ.put(msg,data1,data2);
  45. }
  46.  
  47. #endif
  48.  
  49.