summaryrefslogtreecommitdiff
path: root/includes/Selectable.h
diff options
context:
space:
mode:
authorNicolas "Pixel" Noble <pixel@nobis-crew.org>2013-12-21 18:32:27 -0800
committerNicolas "Pixel" Noble <pixel@nobis-crew.org>2013-12-21 18:32:27 -0800
commit9754372d5e4125bf5850d9cd3ae93d529efdef8d (patch)
treefc20e375256b95bbd13fecde0d85181100a198e4 /includes/Selectable.h
parent9697add8b75b96662c8d39477e58d5841c4b9cba (diff)
Preliminary WebSocket protocol support.
Diffstat (limited to 'includes/Selectable.h')
-rw-r--r--includes/Selectable.h5
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;
};