summaryrefslogtreecommitdiffstats
path: root/src/bluetooth
diff options
context:
space:
mode:
authorAlex Blasche <alexander.blasche@digia.com>2014-05-12 12:33:41 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-05-23 08:46:17 +0200
commit66cc81ed8df87103409140547b4e017647e80d61 (patch)
treef0dc0cae6419ad9b5af7721936a41719d202a05d /src/bluetooth
parent82a11f8b742bb2e6e7b326296405618fb16933df (diff)
Code cleanup: Avoid repeated service info duplication check
Change-Id: I00701e9103a6acfdfc2697949280f8a7de8bcdfe Reviewed-by: Aaron McCarthy <mccarthy.aaron@gmail.com>
Diffstat (limited to 'src/bluetooth')
-rw-r--r--src/bluetooth/qbluetoothservicediscoveryagent.cpp15
-rw-r--r--src/bluetooth/qbluetoothservicediscoveryagent_android.cpp13
-rw-r--r--src/bluetooth/qbluetoothservicediscoveryagent_bluez.cpp43
-rw-r--r--src/bluetooth/qbluetoothservicediscoveryagent_p.h1
-rw-r--r--src/bluetooth/qbluetoothservicediscoveryagent_qnx.cpp13
5 files changed, 29 insertions, 56 deletions
diff --git a/src/bluetooth/qbluetoothservicediscoveryagent.cpp b/src/bluetooth/qbluetoothservicediscoveryagent.cpp
index fb9fb120..0e185990 100644
--- a/src/bluetooth/qbluetoothservicediscoveryagent.cpp
+++ b/src/bluetooth/qbluetoothservicediscoveryagent.cpp
@@ -509,6 +509,21 @@ void QBluetoothServiceDiscoveryAgentPrivate::_q_serviceDiscoveryFinished()
startServiceDiscovery();
}
+bool QBluetoothServiceDiscoveryAgentPrivate::isDuplicatedService(
+ const QBluetoothServiceInfo &serviceInfo) const
+{
+ //check the service is not already part of our known list
+ for (int j = 0; j < discoveredServices.count(); j++) {
+ const QBluetoothServiceInfo &info = discoveredServices.at(j);
+ if (info.device() == serviceInfo.device()
+ && info.serviceClassUuids() == serviceInfo.serviceClassUuids()
+ && info.serviceUuid() == serviceInfo.serviceUuid()) {
+ return true;
+ }
+ }
+ return false;
+}
+
#include "moc_qbluetoothservicediscoveryagent.cpp"
QT_END_NAMESPACE
diff --git a/src/bluetooth/qbluetoothservicediscoveryagent_android.cpp b/src/bluetooth/qbluetoothservicediscoveryagent_android.cpp
index 3d973b32..35449720 100644
--- a/src/bluetooth/qbluetoothservicediscoveryagent_android.cpp
+++ b/src/bluetooth/qbluetoothservicediscoveryagent_android.cpp
@@ -406,18 +406,7 @@ void QBluetoothServiceDiscoveryAgentPrivate::populateDiscoveredServices(const QB
}
//don't include the service if we already discovered it before
- bool alreadyDiscovered = false;
- for (int j = 0; j < discoveredServices.count(); j++) {
- const QBluetoothServiceInfo &info = discoveredServices.at(j);
- if (info.device() == serviceInfo.device()
- && info.serviceClassUuids() == serviceInfo.serviceClassUuids()
- && info.serviceUuid() == serviceInfo.serviceUuid()) {
- alreadyDiscovered = true;
- break;
- }
- }
-
- if (!alreadyDiscovered) {
+ if (!isDuplicatedService(serviceInfo)) {
discoveredServices << serviceInfo;
//qCDebug(QT_BT_ANDROID) << serviceInfo;
emit q->serviceDiscovered(serviceInfo);
diff --git a/src/bluetooth/qbluetoothservicediscoveryagent_bluez.cpp b/src/bluetooth/qbluetoothservicediscoveryagent_bluez.cpp
index 89d93200..2f7dc726 100644
--- a/src/bluetooth/qbluetoothservicediscoveryagent_bluez.cpp
+++ b/src/bluetooth/qbluetoothservicediscoveryagent_bluez.cpp
@@ -355,13 +355,14 @@ void QBluetoothServiceDiscoveryAgentPrivate::_q_finishSdpScan(QBluetoothServiceD
if (!serviceInfo.isValid())
continue;
- discoveredServices.append(serviceInfo);
- qCDebug(QT_BT_BLUEZ) << "Discovered services" << discoveredDevices.at(0).address().toString()
- << serviceInfo.serviceName() << serviceInfo.serviceUuid()
- << ">>>" << serviceInfo.serviceClassUuids();
+ if (!isDuplicatedService(serviceInfo)) {
+ discoveredServices.append(serviceInfo);
+ qCDebug(QT_BT_BLUEZ) << "Discovered services" << discoveredDevices.at(0).address().toString()
+ << serviceInfo.serviceName() << serviceInfo.serviceUuid()
+ << ">>>" << serviceInfo.serviceClassUuids();
- // TODO check for duplicates (wait until stable has merged due to related change)
- emit q->serviceDiscovered(serviceInfo);
+ emit q->serviceDiscovered(serviceInfo);
+ }
// could stop discovery, check for state
if (discoveryState() == Inactive)
@@ -492,19 +493,7 @@ void QBluetoothServiceDiscoveryAgentPrivate::_q_discoveredServices(QDBusPendingC
Q_Q(QBluetoothServiceDiscoveryAgent);
- //don't include the service if we already discovered it before
- bool alreadyDiscovered = false;
- for (int j = 0; j < discoveredServices.count(); j++) {
- const QBluetoothServiceInfo &info = discoveredServices.at(j);
- if (info.device() == serviceInfo.device()
- && info.serviceClassUuids() == serviceInfo.serviceClassUuids()
- && info.serviceUuid() == serviceInfo.serviceUuid()) {
- alreadyDiscovered = true;
- break;
- }
- }
-
- if (!alreadyDiscovered) {
+ if (!isDuplicatedService(serviceInfo)) {
discoveredServices.append(serviceInfo);
qCDebug(QT_BT_BLUEZ) << "Discovered services" << discoveredDevices.at(0).address().toString()
<< serviceInfo.serviceName();
@@ -624,20 +613,10 @@ void QBluetoothServiceDiscoveryAgentPrivate::performMinimalServiceDiscovery(cons
}
//don't include the service if we already discovered it before
- bool alreadyDiscovered = false;
- for (int j = 0; j < discoveredServices.count(); j++) {
- const QBluetoothServiceInfo &info = discoveredServices.at(j);
- if (info.device() == serviceInfo.device()
- && info.serviceClassUuids() == serviceInfo.serviceClassUuids()
- && info.serviceUuid() == serviceInfo.serviceUuid()) {
- alreadyDiscovered = true;
- break;
- }
- }
-
- if (!alreadyDiscovered) {
+ if (!isDuplicatedService(serviceInfo)) {
discoveredServices << serviceInfo;
- //qCDebug(QT_BT_ANDROID) << serviceInfo;
+ qCDebug(QT_BT_BLUEZ) << "Discovered services" << discoveredDevices.at(0).address().toString()
+ << serviceInfo.serviceName();
emit q->serviceDiscovered(serviceInfo);
}
}
diff --git a/src/bluetooth/qbluetoothservicediscoveryagent_p.h b/src/bluetooth/qbluetoothservicediscoveryagent_p.h
index b3910a7e..2bf4ff72 100644
--- a/src/bluetooth/qbluetoothservicediscoveryagent_p.h
+++ b/src/bluetooth/qbluetoothservicediscoveryagent_p.h
@@ -133,6 +133,7 @@ public:
private:
void start(const QBluetoothAddress &address);
void stop();
+ bool isDuplicatedService(const QBluetoothServiceInfo &serviceInfo) const;
#ifdef QT_BLUEZ_BLUETOOTH
void startBluez5(const QBluetoothAddress &address);
diff --git a/src/bluetooth/qbluetoothservicediscoveryagent_qnx.cpp b/src/bluetooth/qbluetoothservicediscoveryagent_qnx.cpp
index 11882d01..d65d638d 100644
--- a/src/bluetooth/qbluetoothservicediscoveryagent_qnx.cpp
+++ b/src/bluetooth/qbluetoothservicediscoveryagent_qnx.cpp
@@ -306,19 +306,8 @@ void QBluetoothServiceDiscoveryAgentPrivate::remoteDevicesChanged(int fd)
serviceInfo.setAttribute(QBluetoothServiceInfo::BrowseGroupList,
QBluetoothUuid(QBluetoothUuid::PublicBrowseGroup));
- bool entryExists = false;
//Did we already discover this service?
- foreach (QBluetoothServiceInfo sInfo, q_ptr->discoveredServices()) {
- if (sInfo.device() == serviceInfo.device()
- && sInfo.serviceUuid() == serviceInfo.serviceUuid()
- && sInfo.serviceClassUuids() == serviceInfo.serviceClassUuids()) {
- entryExists = true;
- //qCDebug(QT_BT_QNX) << "Entry exists" << serviceInfo.serviceClassUuids().first() << sInfo.serviceClassUuids().first();
- break;
- }
- }
-
- if (!entryExists) {
+ if (!isDuplicatedService(serviceInfo)) {
qCDebug(QT_BT_QNX) << "Adding service" << next_service << " " << serviceInfo.socketProtocol();
discoveredServices << serviceInfo;
q_ptr->serviceDiscovered(serviceInfo);