diff options
author | Andre Hartmann <aha_1980@gmx.de> | 2021-01-05 19:19:53 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-07-22 14:12:32 +0000 |
commit | 1a78e46c7bcbc126722849da5c5e3d53c5019c74 (patch) | |
tree | 1372d09a7b7e20ed1da5fba5461275fbc7130628 | |
parent | ce1ed294746e17a2db388c6549109dbcb0ebefdc (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.cpp | 13 | ||||
-rw-r--r-- | src/plugins/canbus/peakcan/peakcanbackend.h | 7 | ||||
-rw-r--r-- | src/plugins/canbus/socketcan/socketcanbackend.cpp | 12 | ||||
-rw-r--r-- | src/plugins/canbus/socketcan/socketcanbackend.h | 7 | ||||
-rw-r--r-- | src/plugins/canbus/systeccan/systeccanbackend.cpp | 11 | ||||
-rw-r--r-- | src/plugins/canbus/systeccan/systeccanbackend.h | 7 | ||||
-rw-r--r-- | src/plugins/canbus/tinycan/tinycanbackend.cpp | 3 | ||||
-rw-r--r-- | src/plugins/canbus/tinycan/tinycanbackend.h | 4 | ||||
-rw-r--r-- | src/plugins/canbus/vectorcan/vectorcanbackend.cpp | 8 | ||||
-rw-r--r-- | src/plugins/canbus/vectorcan/vectorcanbackend.h | 5 | ||||
-rw-r--r-- | src/serialbus/qcanbusdevice.cpp | 43 | ||||
-rw-r--r-- | src/serialbus/qcanbusdevice.h | 9 |
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); |