EventHandler.h
上传用户:nvosite88
上传日期:2007-01-17
资源大小:4983k
文件大小:2k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* EventHandler - Base class for Reactor events */
  2. /* Copyright (c) 1999 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01a,07may99,aim  created
  7. */
  8. #ifndef __INCEventHandler_h
  9. #define __INCEventHandler_h
  10. #include "ReactorTypes.h"
  11. #include "TimeValue.h"
  12. #include "iostream"
  13. class Reactor;
  14. class EventHandler
  15.     {
  16.   public:
  17.     enum {
  18. NULL_MASK       = 0,
  19. READ_MASK       = (1 << 0),
  20. ACCEPT_MASK     = (1 << 0),
  21. WRITE_MASK      = (1 << 1),
  22. CONNECT_MASK    = (1 << 3),
  23. EXCEPT_MASK     = (1 << 4),
  24. ALL_EVENTS_MASK = READ_MASK|WRITE_MASK|ACCEPT_MASK|CONNECT_MASK,
  25. DONT_CALL       = (1 << 16)
  26.     };
  27.     virtual ~EventHandler ();
  28.     virtual REACTOR_HANDLE handleGet () const;
  29.     // Get the I/O REACTOR_HANDLE.
  30.     virtual REACTOR_HANDLE handleSet (REACTOR_HANDLE);
  31.     // Set the I/O REACTOR_HANDLE.
  32.     virtual int handleInput (REACTOR_HANDLE h);
  33.     // Called when input events occur (e.g., connection or data).
  34.     virtual int handleOutput (REACTOR_HANDLE h);
  35.     // Called when output events are possible.  (e.g., flow control
  36.     // abates).
  37.     virtual int handleClose
  38. (
  39. REACTOR_HANDLE = INVALID_REACTOR_HANDLE,
  40. REACTOR_EVENT_MASK = ALL_EVENTS_MASK
  41. );
  42.     virtual int handleException (REACTOR_HANDLE);
  43.     virtual int handleTimeout (const TimeValue& timeValue);
  44.     // Called when timer expires.
  45.     virtual Reactor* reactorSet (Reactor *reactor);
  46.     virtual Reactor* reactorGet () const;
  47.     friend ostream& operator<< (ostream& os, const EventHandler&);
  48.   protected:
  49.     EventHandler ();
  50.     // Force EventHandler to be an abstract base class.
  51.     Reactor* m_reactor;
  52.     };
  53.  
  54. #endif // __INCEventHandler_h