home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1998 / MacHack 1998.toast / Sessions / Completions / Completions Source / Execution Queues / ApplicationTaskQueue.h < prev    next >
Encoding:
Text File  |  1998-06-17  |  822 b   |  45 lines  |  [TEXT/CWIE]

  1. // ApplicationTaskQueue.h
  2.  
  3. #ifndef ApplicationTaskQueue_h
  4. #define ApplicationTaskQueue_h
  5.  
  6. #ifndef BoundMethod_h
  7. #include "BoundMethod.h"
  8. #endif
  9. #ifndef OSQueue_h
  10. #include "OSQueue.h"
  11. #endif
  12. #ifndef ApplicationTime_h
  13. #include "ApplicationTime.h"
  14. #endif
  15.  
  16. class ApplicationWaker;
  17.  
  18. class ApplicationTaskQueue
  19.   {
  20.     public:
  21.         typedef OSQueueLink<ApplicationTimeProcedure> Link;
  22.         
  23.     private:
  24.         ApplicationWaker& waker;
  25.         OSQueue< ApplicationTimeProcedure > queue;
  26.                 
  27.         ApplicationTaskQueue();
  28.         ~ApplicationTaskQueue()            { Assert( ApplicationTime::IsNow() ); }
  29.         
  30.         // not implemented:
  31.             ApplicationTaskQueue( const ApplicationTaskQueue& );
  32.             void operator=( const ApplicationTaskQueue& );
  33.             
  34.     public:
  35.         static ApplicationTaskQueue& The();
  36.         
  37.         bool IsEmpty() const;
  38.  
  39.         void Put( Link& );
  40.  
  41.         void ExecuteOne();
  42.   };
  43.  
  44. #endif
  45.