summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Sluift/SluiftComponent.cpp')
-rw-r--r--Sluift/SluiftComponent.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/Sluift/SluiftComponent.cpp b/Sluift/SluiftComponent.cpp
index c08a103..c8a17a7 100644
--- a/Sluift/SluiftComponent.cpp
+++ b/Sluift/SluiftComponent.cpp
@@ -47,71 +47,71 @@ void SluiftComponent::connect(const std::string& host, int port) {
void SluiftComponent::setTraceEnabled(bool b) {
if (b && !tracer) {
tracer = new ComponentXMLTracer(component);
}
else if (!b && tracer) {
delete tracer;
tracer = NULL;
}
}
void SluiftComponent::waitConnected(int timeout) {
Watchdog watchdog(timeout, networkFactories->getTimerFactory());
while (!watchdog.getTimedOut() && !disconnectedError && !component->isAvailable()) {
eventLoop->runUntilEvents();
}
if (watchdog.getTimedOut()) {
component->disconnect();
throw Lua::Exception("Timeout while connecting");
}
if (disconnectedError) {
throw Lua::Exception(getErrorString(*disconnectedError));
}
}
bool SluiftComponent::isConnected() const {
return component->isAvailable();
}
void SluiftComponent::disconnect() {
component->disconnect();
while (component->isAvailable()) {
eventLoop->runUntilEvents();
}
}
-void SluiftComponent::setSoftwareVersion(const std::string& name, const std::string& version, const std::string& os) {
+void SluiftComponent::setSoftwareVersion(const std::string& name, const std::string& version, const std::string& /* os */) {
component->setSoftwareVersion(name, version);
}
boost::optional<SluiftComponent::Event> SluiftComponent::getNextEvent(
int timeout, boost::function<bool (const Event&)> condition) {
Watchdog watchdog(timeout, networkFactories->getTimerFactory());
size_t currentIndex = 0;
while (true) {
// Look for pending events in the queue
while (currentIndex < pendingEvents.size()) {
Event event = pendingEvents[currentIndex];
if (!condition || condition(event)) {
pendingEvents.erase(
pendingEvents.begin()
+ boost::numeric_cast<int>(currentIndex));
return event;
}
++currentIndex;
}
// Wait for new events
while (!watchdog.getTimedOut() && currentIndex >= pendingEvents.size() && component->isAvailable()) {
eventLoop->runUntilEvents();
}
// Finish if we're disconnected or timed out
if (watchdog.getTimedOut() || !component->isAvailable()) {
return boost::optional<Event>();
}
}
}
void SluiftComponent::handleIncomingMessage(boost::shared_ptr<Message> stanza) {
pendingEvents.push_back(Event(stanza));
}