home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1998 / MacHack 1998.toast / Papers / C++ Exceptions / µShell / Actions / Action.h < prev   
Encoding:
C/C++ Source or Header  |  1998-05-25  |  681 b   |  38 lines  |  [TEXT/CWIE]

  1. #ifndef __ACTION__
  2. #define __ACTION__
  3. #pragma once
  4.  
  5. //------------------------------------------------------------------------------
  6.  
  7. class Action
  8. {
  9. public:
  10.     Action();
  11.     virtual ~Action() = 0 {};
  12.     
  13.     virtual void    Doit() = 0;
  14. };
  15.  
  16. //------------------------------------------------------------------------------
  17.  
  18. class CallbackAction
  19. {
  20. public:
  21.     typedef void (*Callback)(void* refcon);
  22.  
  23. protected:
  24.     Callback    fCallback;
  25.     void*        fRefcon;
  26.     
  27. public:
  28.     CallbackAction(Callback proc, void* refCon)
  29.     :    fCallback(proc), fRefcon(refCon)    {}
  30.     virtual ~CallbackAction();
  31.     
  32.     virtual void    Doit();
  33. };
  34.  
  35. //------------------------------------------------------------------------------
  36.  
  37. #endif __ACTION__
  38.