summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndre Hartmann <aha_1980@gmx.de>2021-01-05 19:19:53 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-07-22 14:12:32 +0000
commit1a78e46c7bcbc126722849da5c5e3d53c5019c74 (patch)
tree1372d09a7b7e20ed1da5fba5461275fbc7130628
parentce1ed294746e17a2db388c6549109dbcb0ebefdc (diff)
CAN: Make functions that should be virtual such
They were not during Qt 5 times due to our binary compatibility promise. Change-Id: Ia5ddb114db9dc552515df5ab4b22d0c962a0a341 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit 8199ed388753dda6239a597fb4bb7acba664f73e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--src/plugins/canbus/peakcan/peakcanbackend.cpp13
-rw-r--r--src/plugins/canbus/peakcan/peakcanbackend.h7
-rw-r--r--src/plugins/canbus/socketcan/socketcanbackend.cpp12
-rw-r--r--src/plugins/canbus/socketcan/socketcanbackend.h7
-rw-r--r--src/plugins/canbus/systeccan/systeccanbackend.cpp11
-rw-r--r--src/plugins/canbus/systeccan/systeccanbackend.h7
-rw-r--r--src/plugins/canbus/tinycan/tinycanbackend.cpp3
-rw-r--r--src/plugins/canbus/tinycan/tinycanbackend.h4
-rw-r--r--src/plugins/canbus/vectorcan/vectorcanbackend.cpp8
-rw-r--r--src/plugins/canbus/vectorcan/vectorcanbackend.h5
-rw-r--r--src/serialbus/qcanbusdevice.cpp43
-rw-r--r--src/serialbus/qcanbusdevice.h9
12 files changed, 43 insertions, 86 deletions
diff --git a/src/plugins/canbus/peakcan/peakcanbackend.cpp b/src/plugins/canbus/peakcan/peakcanbackend.cpp
index 22bcf36..aabfead 100644
--- a/src/plugins/canbus/peakcan/peakcanbackend.cpp
+++ b/src/plugins/canbus/peakcan/peakcanbackend.cpp
@@ -782,12 +782,6 @@ PeakCanBackend::PeakCanBackend(const QString &name, QObject *parent)
d->setupChannel(name.toLatin1());
d->setupDefaultConfigurations();
-
- std::function<void()> f = std::bind(&PeakCanBackend::resetController, this);
- setResetControllerFunction(f);
-
- std::function<CanBusStatus()> g = std::bind(&PeakCanBackend::busStatus, this);
- setCanBusStatusGetter(g);
}
PeakCanBackend::~PeakCanBackend()
@@ -885,7 +879,12 @@ void PeakCanBackend::resetController()
open();
}
-QCanBusDevice::CanBusStatus PeakCanBackend::busStatus() const
+bool PeakCanBackend::hasBusStatus() const
+{
+ return true;
+}
+
+QCanBusDevice::CanBusStatus PeakCanBackend::busStatus()
{
const TPCANStatus status = ::CAN_GetStatus(d_ptr->channelIndex);
diff --git a/src/plugins/canbus/peakcan/peakcanbackend.h b/src/plugins/canbus/peakcan/peakcanbackend.h
index 5bedd29..5a4fc82 100644
--- a/src/plugins/canbus/peakcan/peakcanbackend.h
+++ b/src/plugins/canbus/peakcan/peakcanbackend.h
@@ -72,10 +72,11 @@ public:
static QList<QCanBusDeviceInfo> interfacesByAttachedChannels(bool *ok);
static QList<QCanBusDeviceInfo> interfaces();
-private:
- void resetController();
- CanBusStatus busStatus() const;
+ void resetController() override;
+ bool hasBusStatus() const override;
+ CanBusStatus busStatus() override;
+private:
PeakCanBackendPrivate * const d_ptr;
};
diff --git a/src/plugins/canbus/socketcan/socketcanbackend.cpp b/src/plugins/canbus/socketcan/socketcanbackend.cpp
index 4592840..134596d 100644
--- a/src/plugins/canbus/socketcan/socketcanbackend.cpp
+++ b/src/plugins/canbus/socketcan/socketcanbackend.cpp
@@ -171,16 +171,6 @@ SocketCanBackend::SocketCanBackend(const QString &name) :
}
resetConfigurations();
-
- std::function<void()> f = std::bind(&SocketCanBackend::resetController, this);
- setResetControllerFunction(f);
-
- if (hasBusStatus()) {
- // Only register busStatus when libsocketcan is available
- // QCanBusDevice::hasBusStatus() will return false otherwise
- std::function<CanBusStatus()> g = std::bind(&SocketCanBackend::busStatus, this);
- setCanBusStatusGetter(g);
- }
}
SocketCanBackend::~SocketCanBackend()
@@ -758,7 +748,7 @@ bool SocketCanBackend::hasBusStatus() const
return libSocketCan->hasBusStatus();
}
-QCanBusDevice::CanBusStatus SocketCanBackend::busStatus() const
+QCanBusDevice::CanBusStatus SocketCanBackend::busStatus()
{
return libSocketCan->busStatus(canSocketName);
}
diff --git a/src/plugins/canbus/socketcan/socketcanbackend.h b/src/plugins/canbus/socketcan/socketcanbackend.h
index d6daf6d..43d8383 100644
--- a/src/plugins/canbus/socketcan/socketcanbackend.h
+++ b/src/plugins/canbus/socketcan/socketcanbackend.h
@@ -100,6 +100,10 @@ public:
static QList<QCanBusDeviceInfo> interfaces();
+ void resetController() override;
+ bool hasBusStatus() const override;
+ CanBusStatus busStatus() override;
+
private Q_SLOTS:
void readSocket();
@@ -107,9 +111,6 @@ private:
void resetConfigurations();
bool connectSocket();
bool applyConfigurationParameter(ConfigurationKey key, const QVariant &value);
- void resetController();
- bool hasBusStatus() const;
- QCanBusDevice::CanBusStatus busStatus() const;
int protocol = CAN_RAW;
canfd_frame m_frame;
diff --git a/src/plugins/canbus/systeccan/systeccanbackend.cpp b/src/plugins/canbus/systeccan/systeccanbackend.cpp
index 4c251b5..c5d8951 100644
--- a/src/plugins/canbus/systeccan/systeccanbackend.cpp
+++ b/src/plugins/canbus/systeccan/systeccanbackend.cpp
@@ -494,12 +494,6 @@ SystecCanBackend::SystecCanBackend(const QString &name, QObject *parent) :
d->setupChannel(name);
d->setupDefaultConfigurations();
-
- std::function<void()> f = std::bind(&SystecCanBackend::resetController, this);
- setResetControllerFunction(f);
-
- std::function<CanBusStatus()> g = std::bind(&SystecCanBackend::busStatus, this);
- setCanBusStatusGetter(g);
}
SystecCanBackend::~SystecCanBackend()
@@ -597,6 +591,11 @@ void SystecCanBackend::resetController()
d->resetController();
}
+bool SystecCanBackend::hasBusStatus() const
+{
+ return true;
+}
+
QCanBusDevice::CanBusStatus SystecCanBackend::busStatus()
{
Q_D(SystecCanBackend);
diff --git a/src/plugins/canbus/systeccan/systeccanbackend.h b/src/plugins/canbus/systeccan/systeccanbackend.h
index 200b4ab..cd1a0ad 100644
--- a/src/plugins/canbus/systeccan/systeccanbackend.h
+++ b/src/plugins/canbus/systeccan/systeccanbackend.h
@@ -75,10 +75,11 @@ public:
uint deviceNumber,
int channelNumber);
-private:
- void resetController();
- QCanBusDevice::CanBusStatus busStatus();
+ void resetController() override;
+ bool hasBusStatus() const override;
+ CanBusStatus busStatus() override;
+private:
SystecCanBackendPrivate * const d_ptr;
};
diff --git a/src/plugins/canbus/tinycan/tinycanbackend.cpp b/src/plugins/canbus/tinycan/tinycanbackend.cpp
index c990f91..4bd5a6a 100644
--- a/src/plugins/canbus/tinycan/tinycanbackend.cpp
+++ b/src/plugins/canbus/tinycan/tinycanbackend.cpp
@@ -508,9 +508,6 @@ TinyCanBackend::TinyCanBackend(const QString &name, QObject *parent)
d->setupChannel(name);
d->setupDefaultConfigurations();
-
- std::function<void()> f = std::bind(&TinyCanBackend::resetController, this);
- setResetControllerFunction(f);
}
TinyCanBackend::~TinyCanBackend()
diff --git a/src/plugins/canbus/tinycan/tinycanbackend.h b/src/plugins/canbus/tinycan/tinycanbackend.h
index a9c577b..ed28905 100644
--- a/src/plugins/canbus/tinycan/tinycanbackend.h
+++ b/src/plugins/canbus/tinycan/tinycanbackend.h
@@ -70,9 +70,9 @@ public:
static bool canCreate(QString *errorReason);
static QList<QCanBusDeviceInfo> interfaces();
-private:
- void resetController();
+ void resetController() override;
+private:
TinyCanBackendPrivate * const d_ptr;
};
diff --git a/src/plugins/canbus/vectorcan/vectorcanbackend.cpp b/src/plugins/canbus/vectorcan/vectorcanbackend.cpp
index f4b9817..db957cd 100644
--- a/src/plugins/canbus/vectorcan/vectorcanbackend.cpp
+++ b/src/plugins/canbus/vectorcan/vectorcanbackend.cpp
@@ -548,9 +548,6 @@ VectorCanBackend::VectorCanBackend(const QString &name, QObject *parent)
d->setupChannel(name);
d->setupDefaultConfigurations();
-
- std::function<CanBusStatus()> g = std::bind(&VectorCanBackend::busStatus, this);
- setCanBusStatusGetter(g);
}
VectorCanBackend::~VectorCanBackend()
@@ -644,6 +641,11 @@ QString VectorCanBackend::interpretErrorFrame(const QCanBusFrame &errorFrame)
return QString();
}
+bool VectorCanBackend::hasBusStatus() const
+{
+ return true;
+}
+
QCanBusDevice::CanBusStatus VectorCanBackend::busStatus()
{
Q_D(VectorCanBackend);
diff --git a/src/plugins/canbus/vectorcan/vectorcanbackend.h b/src/plugins/canbus/vectorcan/vectorcanbackend.h
index 52565a1..39dfcfa 100644
--- a/src/plugins/canbus/vectorcan/vectorcanbackend.h
+++ b/src/plugins/canbus/vectorcan/vectorcanbackend.h
@@ -69,9 +69,10 @@ public:
static bool canCreate(QString *errorReason);
static QList<QCanBusDeviceInfo> interfaces();
-private:
- QCanBusDevice::CanBusStatus busStatus();
+ bool hasBusStatus() const override;
+ CanBusStatus busStatus() override;
+private:
VectorCanBackendPrivate * const d_ptr;
};
diff --git a/src/serialbus/qcanbusdevice.cpp b/src/serialbus/qcanbusdevice.cpp
index 7c74162..671896f 100644
--- a/src/serialbus/qcanbusdevice.cpp
+++ b/src/serialbus/qcanbusdevice.cpp
@@ -345,30 +345,6 @@ bool QCanBusDevice::hasOutgoingFrames() const
}
/*!
- * \since 5.14
- * Called from the derived plugin to register a function \a resetter which performs the
- * CAN controller hardware reset when resetController() is called.
- */
-void QCanBusDevice::setResetControllerFunction(std::function<void()> resetter)
-{
- Q_D(QCanBusDevice);
-
- d->m_resetControllerFunction = std::move(resetter);
-}
-
-/*!
- * \since 5.14
- * Called from the derived plugin to register a function \a busStatusGetter
- * which returns the CAN controller bus status when busStatus() is called.
- */
-void QCanBusDevice::setCanBusStatusGetter(std::function<CanBusStatus()> busStatusGetter)
-{
- Q_D(QCanBusDevice);
-
- d->m_busStatusGetter = std::move(busStatusGetter);
-}
-
-/*!
Sets the configuration parameter \a key for the CAN bus connection
to \a value. The potential keys are represented by \l ConfigurationKey.
@@ -510,14 +486,10 @@ qint64 QCanBusDevice::framesToWrite() const
*/
void QCanBusDevice::resetController()
{
- if (d_func()->m_resetControllerFunction) {
- d_func()->m_resetControllerFunction();
- } else {
- const char error[] = QT_TRANSLATE_NOOP("QCanBusDevice",
- "This CAN bus plugin does not support hardware controller reset.");
- qCWarning(QT_CANBUS, error);
- setError(tr(error), QCanBusDevice::CanBusError::ConfigurationError);
- }
+ const char error[] = QT_TRANSLATE_NOOP("QCanBusDevice",
+ "This CAN bus plugin does not support hardware controller reset.");
+ qCWarning(QT_CANBUS, error);
+ setError(tr(error), QCanBusDevice::CanBusError::ConfigurationError);
}
/*!
@@ -529,7 +501,7 @@ void QCanBusDevice::resetController()
*/
bool QCanBusDevice::hasBusStatus() const
{
- return d_func()->m_busStatusGetter != nullptr;
+ return false;
}
/*!
@@ -561,11 +533,8 @@ bool QCanBusDevice::hasBusStatus() const
\sa hasBusStatus(), resetController()
*/
-QCanBusDevice::CanBusStatus QCanBusDevice::busStatus() const
+QCanBusDevice::CanBusStatus QCanBusDevice::busStatus()
{
- if (d_func()->m_busStatusGetter)
- return d_func()->m_busStatusGetter();
-
return QCanBusDevice::CanBusStatus::Unknown;
}
diff --git a/src/serialbus/qcanbusdevice.h b/src/serialbus/qcanbusdevice.h
index 989cb76..caef792 100644
--- a/src/serialbus/qcanbusdevice.h
+++ b/src/serialbus/qcanbusdevice.h
@@ -135,9 +135,9 @@ public:
qint64 framesAvailable() const;
qint64 framesToWrite() const;
- void resetController();
- bool hasBusStatus() const;
- QCanBusDevice::CanBusStatus busStatus() const;
+ virtual void resetController();
+ virtual bool hasBusStatus() const;
+ virtual CanBusStatus busStatus();
enum Direction {
Input = 1,
@@ -181,9 +181,6 @@ protected:
virtual bool open() = 0;
virtual void close() = 0;
- void setResetControllerFunction(std::function<void()> resetter);
- void setCanBusStatusGetter(std::function<CanBusStatus()> busStatusGetter);
-
static QCanBusDeviceInfo createDeviceInfo(const QString &name,
bool isVirtual = false,
bool isFlexibleDataRateCapable = false);