[PATCH 1/7] Refactor device handling threads

Anton Lundin glance at acc.umu.se
Tue Jan 20 13:40:49 PST 2015


This refactors the device handling threads into having one common
ancestor class.

Signed-off-by: Anton Lundin <glance at acc.umu.se>
---
 configuredivecomputerthreads.cpp | 12 ++++++----
 configuredivecomputerthreads.h   | 51 ++++++++++++++++------------------------
 2 files changed, 28 insertions(+), 35 deletions(-)

diff --git a/configuredivecomputerthreads.cpp b/configuredivecomputerthreads.cpp
index af89950..b2dc8c8 100644
--- a/configuredivecomputerthreads.cpp
+++ b/configuredivecomputerthreads.cpp
@@ -1389,7 +1389,11 @@ static dc_status_t write_ostc_settings(dc_device_t *device, DeviceDetails *m_dev
 	return rc;
 }
 
-ReadSettingsThread::ReadSettingsThread(QObject *parent, device_data_t *data) : QThread(parent), m_data(data)
+DeviceThread::DeviceThread(QObject *parent, device_data_t *data) : QThread(parent), m_data(data)
+{
+}
+
+ReadSettingsThread::ReadSettingsThread(QObject *parent, device_data_t *data) : DeviceThread(parent, data)
 {
 }
 
@@ -1452,7 +1456,7 @@ void ReadSettingsThread::run()
 	}
 }
 
-WriteSettingsThread::WriteSettingsThread(QObject *parent, device_data_t *data) : QThread(parent), m_data(data)
+WriteSettingsThread::WriteSettingsThread(QObject *parent, device_data_t *data) : DeviceThread(parent, data)
 {
 }
 
@@ -1513,7 +1517,7 @@ void WriteSettingsThread::run()
 }
 
 
-FirmwareUpdateThread::FirmwareUpdateThread(QObject *parent, device_data_t *data, QString fileName) : QThread(parent), m_data(data), m_fileName(fileName)
+FirmwareUpdateThread::FirmwareUpdateThread(QObject *parent, device_data_t *data, QString fileName) : DeviceThread(parent, data), m_fileName(fileName)
 {
 }
 
@@ -1553,7 +1557,7 @@ void FirmwareUpdateThread::run()
 }
 
 
-ResetSettingsThread::ResetSettingsThread(QObject *parent, device_data_t *data) : QThread(parent), m_data(data)
+ResetSettingsThread::ResetSettingsThread(QObject *parent, device_data_t *data) : DeviceThread(parent, data)
 {
 }
 
diff --git a/configuredivecomputerthreads.h b/configuredivecomputerthreads.h
index 5c33c9d..bc35caf 100644
--- a/configuredivecomputerthreads.h
+++ b/configuredivecomputerthreads.h
@@ -8,66 +8,55 @@
 #include <QDateTime>
 #include "devicedetails.h"
 
-class ReadSettingsThread : public QThread {
+class DeviceThread : public QThread {
 	Q_OBJECT
 public:
-	ReadSettingsThread(QObject *parent, device_data_t *data);
-	virtual void run();
+	DeviceThread(QObject *parent, device_data_t *data);
+	virtual void run() = 0;
 	QString result;
 	QString lastError;
 signals:
 	void error(QString err);
-	void devicedetails(DeviceDetails *newDeviceDetails);
-
-private:
+	void message(QString msg);
+protected:
 	device_data_t *m_data;
 };
 
-class WriteSettingsThread : public QThread {
+class ReadSettingsThread : public DeviceThread {
+	Q_OBJECT
+public:
+	ReadSettingsThread(QObject *parent, device_data_t *data);
+	void run();
+signals:
+	void devicedetails(DeviceDetails *newDeviceDetails);
+};
+
+class WriteSettingsThread : public DeviceThread {
 	Q_OBJECT
 public:
 	WriteSettingsThread(QObject *parent, device_data_t *data);
 	void setDeviceDetails(DeviceDetails *details);
-	virtual void run();
-	QString result;
-	QString lastError;
-signals:
-	void error(QString err);
+	void run();
 
 private:
-	device_data_t *m_data;
 	DeviceDetails *m_deviceDetails;
 };
 
-class FirmwareUpdateThread : public QThread {
+class FirmwareUpdateThread : public DeviceThread {
 	Q_OBJECT
 public:
 	FirmwareUpdateThread(QObject *parent, device_data_t *data, QString fileName);
-	virtual void run();
-	QString lastError;
-signals:
-	void progress(int percent);
-	void message(QString msg);
-	void error(QString err);
+	void run();
 
 private:
-	device_data_t *m_data;
 	QString m_fileName;
 };
 
-class ResetSettingsThread : public QThread {
+class ResetSettingsThread : public DeviceThread {
 	Q_OBJECT
 public:
 	ResetSettingsThread(QObject *parent, device_data_t *data);
-	virtual void run();
-	QString lastError;
-signals:
-	void progress(int percent);
-	void message(QString msg);
-	void error(QString err);
-
-private:
-	device_data_t *m_data;
+	void run();
 };
 
 #endif // CONFIGUREDIVECOMPUTERTHREADS_H
-- 
2.1.0



More information about the subsurface mailing list