home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1998 / MacHack 1998.toast / Sessions / Completions / Completions Source / Tasks / Completor.h < prev    next >
Encoding:
Text File  |  1998-06-17  |  999 b   |  55 lines  |  [TEXT/CWIE]

  1. // Completor.h
  2.  
  3. #ifndef Completor_h
  4. #define Completor_h
  5.  
  6. #ifndef Procedure_h
  7. #include "Procedure.h"
  8. #endif
  9. #ifndef DeferredTaskTime_h
  10. #include "DeferredTaskTime.h"
  11. #endif
  12. #ifndef ApplicationTime_h
  13. #include "ApplicationTime.h"
  14. #endif
  15.  
  16. class Completor
  17.   {    
  18.     private:
  19.         DeferredTaskTimeProcedure *deferred;
  20.         ApplicationTimeProcedure *application;
  21.     
  22.     public:
  23.         Completor()
  24.           : deferred( 0 ),
  25.              application( 0 )
  26.           {}
  27.         
  28.         Completor( DeferredTaskTimeProcedure& p )
  29.           : deferred( &p ),
  30.              application( 0 )
  31.           {}
  32.         
  33.         Completor( ApplicationTimeProcedure& p )
  34.           : deferred( 0 ),
  35.              application( &p )
  36.           {}
  37.         
  38.         bool WantsDeferredTaskTime() const        { return deferred != 0; }
  39.         bool WantsApplicationTime() const        { return application != 0; }
  40.         
  41.         void operator()( DeferredTaskTime time )
  42.           {
  43.             Assert( WantsDeferredTaskTime() );
  44.             (*deferred)( time );
  45.           }
  46.         
  47.         void operator()( ApplicationTime time )
  48.           {
  49.             Assert( WantsApplicationTime() );
  50.             (*application)( time );
  51.           }
  52.   };
  53.  
  54. #endif
  55.