summaryrefslogtreecommitdiffstats
path: root/src/bluetooth/qlowenergyservice.cpp
diff options
context:
space:
mode:
authorAlex Blasche <alexander.blasche@digia.com>2014-06-18 13:40:00 +0200
committerAlex Blasche <alexander.blasche@digia.com>2014-06-19 11:11:33 +0200
commitfd8a98a49b4fd8dfd0f10eae00f8abfe275826a2 (patch)
treeff430287468afb7fa7a545d1241c6b6a6a22a094 /src/bluetooth/qlowenergyservice.cpp
parent243db8a80ff4cfeba5eda13f900fd11e1144e367 (diff)
Unify the shared data types between controller and service class
This reduces the overhead and simplifies the data structures Change-Id: Iddf184a6d3de5ac253c889f2223a09f2fe08ce15 Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
Diffstat (limited to 'src/bluetooth/qlowenergyservice.cpp')
-rw-r--r--src/bluetooth/qlowenergyservice.cpp61
1 files changed, 9 insertions, 52 deletions
diff --git a/src/bluetooth/qlowenergyservice.cpp b/src/bluetooth/qlowenergyservice.cpp
index 0e25c9b3..2a7f4b4c 100644
--- a/src/bluetooth/qlowenergyservice.cpp
+++ b/src/bluetooth/qlowenergyservice.cpp
@@ -45,19 +45,10 @@
#include <QtBluetooth/QLowEnergyCharacteristicInfo>
#include "qlowenergycontrollernew_p.h"
+#include "qlowenergyserviceprivate_p.h"
QT_BEGIN_NAMESPACE
-class QLowEnergyServicePrivate {
-public:
- QBluetoothUuid uuid;
- QLowEnergyService::ServiceType type;
- QLowEnergyService::ServiceState state;
- QLowEnergyService::ServiceError lastError;
-
- QPointer<QLowEnergyControllerNewPrivate> controller;
-};
-
/*!
\internal
@@ -65,54 +56,20 @@ public:
The user gets access to class instances via
\l QLowEnergyControllerNew::services().
*/
-QLowEnergyService::QLowEnergyService(const QBluetoothUuid &uuid,
+QLowEnergyService::QLowEnergyService(QSharedPointer<QLowEnergyServicePrivate> p,
QObject *parent)
- : QObject(parent)
-{
- d_ptr = new QLowEnergyServicePrivate();
- d_ptr->uuid = uuid;
- d_ptr->state = QLowEnergyService::InvalidService;
- d_ptr->type = QLowEnergyService::PrimaryService;
- d_ptr->lastError = QLowEnergyService::NoError;
-}
-
-/*!
- \internal
-
- Called by Controller right after construction.
- */
-void QLowEnergyService::setController(QLowEnergyControllerNewPrivate *control)
-{
- Q_D(QLowEnergyService);
- if (!control)
- return;
-
- d->state = QLowEnergyService::DiscoveryRequired;
- d->controller = control;
-}
-
-/*!
- \internal
-
- Called by Controller.
- */
-void QLowEnergyService::setError(QLowEnergyService::ServiceError newError)
+ : QObject(parent),
+ d_ptr(p)
{
- Q_D(QLowEnergyService);
- d->lastError = newError;
- emit error(newError);
+ connect(p.data(), SIGNAL(error(QLowEnergyService::ServiceError)),
+ this, SIGNAL(error(QLowEnergyService::ServiceError)));
+ connect(p.data(), SIGNAL(stateChanged(QLowEnergyService::ServiceState)),
+ this, SIGNAL(stateChanged(QLowEnergyService::ServiceState)));
}
-void QLowEnergyService::setState(QLowEnergyService::ServiceState newState)
-{
- Q_D(QLowEnergyService);
- d->state = newState;
- emit stateChanged(newState);
-}
QLowEnergyService::~QLowEnergyService()
{
- delete d_ptr;
}
QList<QSharedPointer<QLowEnergyService> > QLowEnergyService::includedServices() const
@@ -170,7 +127,7 @@ void QLowEnergyService::discoverDetails()
return;
if (!d->controller) {
- setError(QLowEnergyService::ServiceNotValidError);
+ d->setError(QLowEnergyService::ServiceNotValidError);
return;
}