diff options
author | Remko Tronçon <git@el-tramo.be> | 2013-09-01 06:12:18 (GMT) |
---|---|---|
committer | Swift Review <review@swift.im> | 2013-09-01 19:50:30 (GMT) |
commit | 4f1274bcdd2af1a38b7de0b3ef4c18d6cd83c4a3 (patch) | |
tree | eea00fbd093d746e862bc3e8fccadd98c7b0286b /Sluift/SluiftClient.cpp | |
parent | 41bb9db24566f15d60d2522eaea6f00cbaabdf4a (diff) | |
download | swift-4f1274bcdd2af1a38b7de0b3ef4c18d6cd83c4a3.zip swift-4f1274bcdd2af1a38b7de0b3ef4c18d6cd83c4a3.tar.bz2 |
Sluift: More PubSub convenience methods & use cases.
- Convenience iterators to PubSub and PubSubNode.
- Retrieving X most recent items
- Retrieving a single item
- Fixed GeoLocation serializer
Change-Id: Ib4ecde225fb274b21163fcc9b52e19b0d3431860
Diffstat (limited to 'Sluift/SluiftClient.cpp')
-rw-r--r-- | Sluift/SluiftClient.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/Sluift/SluiftClient.cpp b/Sluift/SluiftClient.cpp index 726a683..8a8d772 100644 --- a/Sluift/SluiftClient.cpp +++ b/Sluift/SluiftClient.cpp @@ -87,14 +87,15 @@ void SluiftClient::setSoftwareVersion(const std::string& name, const std::string client->setSoftwareVersion(name, version, os); } -boost::optional<SluiftClient::Event> SluiftClient::getNextEvent(boost::optional<Event::Type> type, int timeout) { +boost::optional<SluiftClient::Event> SluiftClient::getNextEvent( + int timeout, boost::function<bool (const Event&)> condition) { Watchdog watchdog(timeout, networkFactories->getTimerFactory()); while (true) { // Look for pending events in the queue while (!pendingEvents.empty()) { Event event = pendingEvents.front(); pendingEvents.pop_front(); - if (!type || *type == event.type) { + if (!condition || condition(event)) { return event; } } |