CNotifier.h 760 B

1234567891011121314151617181920212223242526272829303132333435
  1. #pragma once
  2. #include <AK/Function.h>
  3. #include <LibCore/CObject.h>
  4. #include <LibCore/ObjectPtr.h>
  5. class CNotifier : public CObject {
  6. C_OBJECT(CNotifier)
  7. public:
  8. enum Event {
  9. None = 0,
  10. Read = 1,
  11. Write = 2,
  12. Exceptional = 4,
  13. };
  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. CNotifier(int fd, unsigned event_mask, CObject* parent = nullptr);
  24. int m_fd { -1 };
  25. unsigned m_event_mask { 0 };
  26. };