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

  1. // DeferredTaskTime.h
  2.  
  3. #ifndef DeferredTaskTime_h
  4. #define DeferredTaskTime_h
  5.  
  6. #ifndef Assert_h
  7. #include "Assert.h"
  8. #endif
  9.  
  10. class DeferredTaskTime;
  11. template < class P0 > class Procedure1;
  12. typedef Procedure1<DeferredTaskTime> DeferredTaskTimeProcedure;
  13.  
  14. class DeferredTaskTime
  15.   {
  16.     friend class Deferer;
  17.     
  18.     private:
  19.         static bool isNow;
  20.     
  21.         static void Start()        { Assert( !IsNow() ); isNow = true; }
  22.         static void End()            { Assert( IsNow() );  isNow = false; }
  23.         
  24.         static pascal void DoNothing();
  25.         static void TryToCauseInterrupt();
  26.         
  27.     public:
  28.         DeferredTaskTime()                                        { Assert( IsNow() ); }
  29.         DeferredTaskTime( const DeferredTaskTime& )        { Assert( IsNow() ); }
  30.  
  31.         static bool IsNow()    { return isNow; }
  32.         
  33.         static void Execute( DeferredTaskTimeProcedure& );
  34.   };
  35.  
  36. #endif
  37.