From a76e09808905d280282a81958cb4c68f71f18ca4 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Sat, 21 Feb 2015 10:37:25 +0100 Subject: o Consistence reference usage. --- apps/sm-get-value.cpp | 2 ++ ble/Bluetooth.h | 2 +- ble/BluetoothImpl.h | 12 +++++++++--- ble/LinuxBluetooth.cpp | 11 +++++------ 4 files changed, 17 insertions(+), 10 deletions(-) diff --git a/apps/sm-get-value.cpp b/apps/sm-get-value.cpp index 9e6ae2c..4d84c45 100644 --- a/apps/sm-get-value.cpp +++ b/apps/sm-get-value.cpp @@ -64,6 +64,8 @@ int main(int argc, char *argv[]) { return EXIT_FAILURE; } +// auto bytes = gatt.readValue(c); + gatt.disconnect(); return EXIT_SUCCESS; } catch (std::runtime_error ex) { diff --git a/ble/Bluetooth.h b/ble/Bluetooth.h index 1dd5022..d6be783 100644 --- a/ble/Bluetooth.h +++ b/ble/Bluetooth.h @@ -122,7 +122,7 @@ public: virtual ~BluetoothGatt(); -// virtual BluetoothDevice &getDevice() = 0; + virtual BluetoothDevice &getDevice() const = 0; virtual void connect() = 0; diff --git a/ble/BluetoothImpl.h b/ble/BluetoothImpl.h index 7801771..ef9a733 100644 --- a/ble/BluetoothImpl.h +++ b/ble/BluetoothImpl.h @@ -133,7 +133,7 @@ public: } protected: - DefaultBluetoothDevice(A adapter, Mac &mac) : + DefaultBluetoothDevice(A &adapter, Mac &mac) : adapter(adapter), mac(mac) { DF; } @@ -150,13 +150,18 @@ protected: services.clear(); } - A adapter; + A &adapter; Mac &mac; vector services; }; +template class DefaultBluetoothGatt : public BluetoothGatt { public: + virtual _D &getDevice() const { + return device; + } + virtual const vector getServices() const { return services; }; @@ -176,7 +181,7 @@ public: } protected: - DefaultBluetoothGatt() { + DefaultBluetoothGatt(_D &device) : device(device) { DF; } @@ -192,6 +197,7 @@ protected: services.clear(); } + _D &device; vector services; }; diff --git a/ble/LinuxBluetooth.cpp b/ble/LinuxBluetooth.cpp index a5d092b..d62bf23 100644 --- a/ble/LinuxBluetooth.cpp +++ b/ble/LinuxBluetooth.cpp @@ -55,21 +55,21 @@ private: class LinuxBluetoothDevice : public DefaultBluetoothDevice { public: LinuxBluetoothDevice(LinuxBluetoothAdapter &adapter, Mac &mac); + ~LinuxBluetoothDevice(); BluetoothGatt &connectGatt() override; private: - LinuxBluetoothGatt* gatt; + LinuxBluetoothGatt *gatt; int l2cap; }; -class LinuxBluetoothGatt : public DefaultBluetoothGatt { +class LinuxBluetoothGatt : public DefaultBluetoothGatt { public: LinuxBluetoothGatt(LinuxBluetoothDevice &device, int l2cap); - ~LinuxBluetoothGatt(); -// LinuxBluetoothDevice &getDevice() override; + ~LinuxBluetoothGatt(); void connect() override; @@ -84,7 +84,6 @@ private: ByteBuffer writeAndRead(ByteBuffer &out, shared_ptr buffer, size_t size); - LinuxBluetoothDevice &device; int l2cap; }; @@ -131,7 +130,7 @@ BluetoothGatt &LinuxBluetoothDevice::connectGatt() { // ----------------------------------------------------------------------- LinuxBluetoothGatt::LinuxBluetoothGatt(LinuxBluetoothDevice &device, int l2cap) : - device(device), l2cap(l2cap) { + DefaultBluetoothGatt(device), l2cap(l2cap) { } LinuxBluetoothGatt::~LinuxBluetoothGatt() { -- cgit v1.2.3