summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/LinkLocal')
-rw-r--r--Swiften/LinkLocal/LinkLocalServiceBrowser.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/Swiften/LinkLocal/LinkLocalServiceBrowser.cpp b/Swiften/LinkLocal/LinkLocalServiceBrowser.cpp
index 4b68a33..ae97933 100644
--- a/Swiften/LinkLocal/LinkLocalServiceBrowser.cpp
+++ b/Swiften/LinkLocal/LinkLocalServiceBrowser.cpp
@@ -1,98 +1,98 @@
/*
- * Copyright (c) 2010 Remko Tronçon
+ * Copyright (c) 2010-2014 Remko Tronçon
* Licensed under the GNU General Public License v3.
* See Documentation/Licenses/GPLv3.txt for more information.
*/
#include <boost/bind.hpp>
#include <iostream>
#include <Swiften/LinkLocal/LinkLocalServiceBrowser.h>
#include <Swiften/LinkLocal/DNSSD/DNSSDBrowseQuery.h>
#include <Swiften/Network/HostAddress.h>
namespace Swift {
LinkLocalServiceBrowser::LinkLocalServiceBrowser(boost::shared_ptr<DNSSDQuerier> querier) : querier(querier), haveError(false) {
}
LinkLocalServiceBrowser::~LinkLocalServiceBrowser() {
if (isRunning()) {
std::cerr << "WARNING: LinkLocalServiceBrowser still running on destruction" << std::endl;
}
}
void LinkLocalServiceBrowser::start() {
assert(!isRunning());
haveError = false;
browseQuery = querier->createBrowseQuery();
browseQuery->onServiceAdded.connect(
boost::bind(&LinkLocalServiceBrowser::handleServiceAdded, this, _1));
browseQuery->onServiceRemoved.connect(
boost::bind(&LinkLocalServiceBrowser::handleServiceRemoved, this, _1));
browseQuery->onError.connect(
boost::bind(&LinkLocalServiceBrowser::handleBrowseError, this));
browseQuery->startBrowsing();
}
void LinkLocalServiceBrowser::stop() {
assert(isRunning());
if (isRegistered()) {
unregisterService();
}
for (ResolveQueryMap::const_iterator i = resolveQueries.begin(); i != resolveQueries.end(); ++i) {
i->second->stop();
}
resolveQueries.clear();
services.clear();
browseQuery->stopBrowsing();
browseQuery.reset();
onStopped(haveError);
}
bool LinkLocalServiceBrowser::isRunning() const {
- return browseQuery;
+ return !!browseQuery;
}
bool LinkLocalServiceBrowser::hasError() const {
return haveError;
}
bool LinkLocalServiceBrowser::isRegistered() const {
- return registerQuery;
+ return !!registerQuery;
}
void LinkLocalServiceBrowser::registerService(const std::string& name, int port, const LinkLocalServiceInfo& info) {
assert(!registerQuery);
registerQuery = querier->createRegisterQuery(name, port, info.toTXTRecord());
registerQuery->onRegisterFinished.connect(
boost::bind(&LinkLocalServiceBrowser::handleRegisterFinished, this, _1));
registerQuery->registerService();
}
void LinkLocalServiceBrowser::updateService(const LinkLocalServiceInfo& info) {
assert(registerQuery);
registerQuery->updateServiceInfo(info.toTXTRecord());
}
void LinkLocalServiceBrowser::unregisterService() {
assert(registerQuery);
registerQuery->unregisterService();
registerQuery.reset();
selfService.reset();
}
std::vector<LinkLocalService> LinkLocalServiceBrowser::getServices() const {
std::vector<LinkLocalService> result;
for (ServiceMap::const_iterator i = services.begin(); i != services.end(); ++i) {
result.push_back(LinkLocalService(i->first, i->second));
}
return result;
}
void LinkLocalServiceBrowser::handleServiceAdded(const DNSSDServiceID& service) {
if (selfService && service == *selfService) {
return;
}