home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / os2thred.zip / QTHREAD.H < prev    next >
C/C++ Source or Header  |  1994-06-05  |  1KB  |  54 lines

  1. // Listing 3 -- QThread.h
  2.  
  3. #if !defined(QTHREAD_INC)
  4. #define QTHREAD_INC
  5.  
  6. //----------------------------- Includes ---------------------------
  7.  
  8. #include "Thread.h"
  9.  
  10. //----------------------------- defines ----------------------------
  11.  
  12. const int QTHRD_DEF_QSIZE        = 0L;
  13.  
  14. //------------------------------ Types -----------------------------
  15.  
  16. class QThread;        // forward declaration
  17.  
  18. typedef VOID FNQTHPROC (QThread *, ULONG);    // QThread Procedure type
  19. typedef FNQTHPROC * PFNQTHPROC;
  20.  
  21. //------------------------------ Class -----------------------------
  22.  
  23. class QThread : public Thread {
  24. public:
  25.     QThread (    ULONG ulQueueSize=QTHRD_DEF_QSIZE,        // Constructor
  26.                 ULONG ulStackSize=THRDS_DEF_STACK);
  27.     ~QThread();                                            // Destructor
  28.  
  29.             VOID    Start(ULONG ulArg=0L);
  30.         
  31.     virtual VOID    SendMsg(ULONG objAddr,
  32.                             ULONG msg,
  33.                             MPARAM mp1, MPARAM mp2) = 0;
  34.  
  35. protected:
  36.     virtual VOID    MsgLoop();
  37.  
  38.     virtual BOOL    GetMessage(QMSG & qmsg) = 0;    // pure virtual
  39.     virtual VOID    DispatchMsg (QMSG & qmsg) = 0;    // pure virtual
  40.  
  41.     virtual VOID     Startup(ULONG ulArg) = 0;        // pure virtual
  42.     virtual BOOL    Shutdown(ULONG ulArg) = 0;        // pure virtual
  43.  
  44.     ULONG    ulQSize;
  45.  
  46.     ULONG ulParam;    // initial argument passed in when thread is started
  47.  
  48. private:
  49.     static VOID threadProc(QThread*);        // static thread procedure
  50. };
  51.  
  52. //-------------------------- End of Header -------------------------
  53. #endif
  54.