CNotifier.h 719 B

1234567891011121314151617181920212223242526272829303132
  1. #pragma once
  2. #include <AK/Function.h>
  3. #include "CObject.h"
  4. class CNotifier : public CObject {
  5. C_OBJECT(CNotifier)
  6. public:
  7. enum Event {
  8. None = 0,
  9. Read = 1,
  10. Write = 2,
  11. Exceptional = 4,
  12. };
  13. CNotifier(int fd, unsigned event_mask, CObject* parent = nullptr);
  14. virtual ~CNotifier() override;
  15. void set_enabled(bool);
  16. Function<void()> on_ready_to_read;
  17. Function<void()> on_ready_to_write;
  18. int fd() const { return m_fd; }
  19. unsigned event_mask() const { return m_event_mask; }
  20. void set_event_mask(unsigned event_mask) { m_event_mask = event_mask; }
  21. void event(CEvent&) override;
  22. private:
  23. int m_fd { -1 };
  24. unsigned m_event_mask { 0 };
  25. };