diff options
author | Kevin Smith <git@kismith.co.uk> | 2010-03-19 09:17:18 (GMT) |
---|---|---|
committer | Kevin Smith <git@kismith.co.uk> | 2010-03-19 15:10:33 (GMT) |
commit | 580d3d49ea3df7bb1c00cb1052203d17ccaa9a8e (patch) | |
tree | c823ef404a7a70c261248c41530827caab07fc52 /Swift/Controllers/EventController.cpp | |
parent | 5d9a6702c244eb4ab30ce96465d9deceedfe955a (diff) | |
download | swift-contrib-580d3d49ea3df7bb1c00cb1052203d17ccaa9a8e.zip swift-contrib-580d3d49ea3df7bb1c00cb1052203d17ccaa9a8e.tar.bz2 |
Start of event viewer.
Creates a basic event viewer framework, and plugs it into the Swift controllers, so that messages are displayed (in a very ugly way). Still a long way to go.
Diffstat (limited to 'Swift/Controllers/EventController.cpp')
-rw-r--r-- | Swift/Controllers/EventController.cpp | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/Swift/Controllers/EventController.cpp b/Swift/Controllers/EventController.cpp index 5141cc1..3849aa7 100644 --- a/Swift/Controllers/EventController.cpp +++ b/Swift/Controllers/EventController.cpp @@ -3,18 +3,23 @@ #include <boost/bind.hpp> #include <algorithm> + namespace Swift { -void EventController::handleIncomingEvent(boost::shared_ptr<MessageEvent> event) { - if (event->isReadable()) { - events_.push_back(event); - event->onRead.connect(boost::bind(&EventController::handleEventRead, this, event)); +EventController::EventController() { +} + +void EventController::handleIncomingEvent(boost::shared_ptr<Event> sourceEvent) { + boost::shared_ptr<MessageEvent> messageEvent = boost::dynamic_pointer_cast<MessageEvent>(sourceEvent); + if (messageEvent && messageEvent->isReadable()) { + events_.push_back(sourceEvent); + messageEvent->onConclusion.connect(boost::bind(&EventController::handleEventConcluded, this, messageEvent)); onEventQueueLengthChange(events_.size()); - onEventQueueEventAdded(event); + onEventQueueEventAdded(sourceEvent); } } -void EventController::handleEventRead(boost::shared_ptr<MessageEvent> event) { +void EventController::handleEventConcluded(boost::shared_ptr<Event> event) { events_.erase(std::remove(events_.begin(), events_.end(), event), events_.end()); onEventQueueLengthChange(events_.size()); } |