diff options
author | Nicolas "Pixel" Noble <pixel@nobis-crew.org> | 2013-12-21 18:32:27 -0800 |
---|---|---|
committer | Nicolas "Pixel" Noble <pixel@nobis-crew.org> | 2013-12-21 18:32:27 -0800 |
commit | 9754372d5e4125bf5850d9cd3ae93d529efdef8d (patch) | |
tree | fc20e375256b95bbd13fecde0d85181100a198e4 /includes/Selectable.h | |
parent | 9697add8b75b96662c8d39477e58d5841c4b9cba (diff) |
Preliminary WebSocket protocol support.
Diffstat (limited to 'includes/Selectable.h')
-rw-r--r-- | includes/Selectable.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/includes/Selectable.h b/includes/Selectable.h index b3b5b8c..8667415 100644 --- a/includes/Selectable.h +++ b/includes/Selectable.h @@ -24,14 +24,17 @@ class Selectable : public Handle { class SelectableEvent : public Events::BaseEvent { public: - SelectableEvent(int fd, int evt = ev::READ | ev::WRITE) : m_task(NULL) { Printer::elog(E_SELECT, "Got a new SelectableEvent at %p", this); m_evt.set<SelectableEvent, &SelectableEvent::evt_cb>(this); m_evt.set(fd, evt); } + SelectableEvent(int fd, int evt = ev::READ | ev::WRITE) : m_task(NULL), m_evtType(evt), m_fd(fd) { Printer::elog(E_SELECT, "Got a new SelectableEvent at %p", this); m_evt.set<SelectableEvent, &SelectableEvent::evt_cb>(this); m_evt.set(fd, evt); } virtual ~SelectableEvent() { Printer::elog(E_SELECT, "Destroying a SelectableEvent at %p", this); m_evt.stop(); } void stop() { Printer::elog(E_SELECT, "Stopping a SelectableEvent at %p", this); reset(); m_evt.stop(); } private: void evt_cb(ev::io & w, int revents) { Printer::elog(E_SELECT, "Got a libev callback on a SelectableEvent at %p", this); doSignal(); } virtual void gotOwner(Task * task); + virtual bool relaxed() { return true; } ev::io m_evt; + int m_evtType; + int m_fd; Task * m_task = NULL; }; |