diff options
author | Alex Blasche <alexander.blasche@digia.com> | 2014-06-18 13:40:00 +0200 |
---|---|---|
committer | Alex Blasche <alexander.blasche@digia.com> | 2014-06-19 11:11:33 +0200 |
commit | fd8a98a49b4fd8dfd0f10eae00f8abfe275826a2 (patch) | |
tree | ff430287468afb7fa7a545d1241c6b6a6a22a094 /src/bluetooth/qlowenergyservice.cpp | |
parent | 243db8a80ff4cfeba5eda13f900fd11e1144e367 (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.cpp | 61 |
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; } |