summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndre Hartmann <aha_1980@gmx.de>2017-03-11 17:20:54 +0100
committerAndré Hartmann <aha_1980@gmx.de>2017-04-08 11:43:39 +0000
commite6a10bc0b5c7be73c5a58f8e565c1d571723bc4a (patch)
treee497d2bb5a72cb2f6badae469e62ce1f68acef2b
parent86ae5181f462c923f2ef792db8f67f8228da0b25 (diff)
QCanBusDeviceInfo: Improve implementation
As pointed out in the 5.9 API review. Deleted the standard constructor to not assign memory. The only way to construct QCanBusDeviceInfo is now by using the return value of QCanBus::availableDevices(): const auto infos = QCanBus::instance()->availableDevices(backend); for (const QCanBusDeviceInfo &info : infos) // do something with info Change-Id: I3382d8a8fffadd18e4f2f87d4ede94e7c2e442f2 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
-rw-r--r--src/serialbus/qcanbusdevice.cpp10
-rw-r--r--src/serialbus/qcanbusdeviceinfo.cpp30
-rw-r--r--src/serialbus/qcanbusdeviceinfo.h2
3 files changed, 15 insertions, 27 deletions
diff --git a/src/serialbus/qcanbusdevice.cpp b/src/serialbus/qcanbusdevice.cpp
index 70778a7..f613f0a 100644
--- a/src/serialbus/qcanbusdevice.cpp
+++ b/src/serialbus/qcanbusdevice.cpp
@@ -717,11 +717,11 @@ void QCanBusDevice::setState(QCanBusDevice::CanBusDeviceState newState)
QCanBusDeviceInfo QCanBusDevice::createDeviceInfo(const QString &name, bool isVirtual,
bool isFlexibleDataRateCapable)
{
- QCanBusDeviceInfoPrivate info;
- info.name = name;
- info.isVirtual = isVirtual;
- info.hasFlexibleDataRate = isFlexibleDataRateCapable;
- return QCanBusDeviceInfo(info);
+ QScopedPointer<QCanBusDeviceInfoPrivate> info(new QCanBusDeviceInfoPrivate);
+ info->name = name;
+ info->isVirtual = isVirtual;
+ info->hasFlexibleDataRate = isFlexibleDataRateCapable;
+ return QCanBusDeviceInfo(*info.take());
}
QT_END_NAMESPACE
diff --git a/src/serialbus/qcanbusdeviceinfo.cpp b/src/serialbus/qcanbusdeviceinfo.cpp
index fac1e9f..30b0e12 100644
--- a/src/serialbus/qcanbusdeviceinfo.cpp
+++ b/src/serialbus/qcanbusdeviceinfo.cpp
@@ -51,36 +51,23 @@ QT_BEGIN_NAMESPACE
*/
/*!
- Constructs an empty QCanBusDeviceInfo.
-*/
-QCanBusDeviceInfo::QCanBusDeviceInfo() :
- d_ptr(new QCanBusDeviceInfoPrivate)
-{
-}
-
-/*!
Constructs a copy of \a other.
*/
-QCanBusDeviceInfo::QCanBusDeviceInfo(const QCanBusDeviceInfo &other) :
- d_ptr(other.d_ptr)
-{
-}
+QCanBusDeviceInfo::QCanBusDeviceInfo(const QCanBusDeviceInfo &) = default;
/*!
Constructs a CAN bus device info from QCanBusDeviceInfoPrivate \a dd.
\internal
*/
QCanBusDeviceInfo::QCanBusDeviceInfo(QCanBusDeviceInfoPrivate &dd) :
- d_ptr(new QCanBusDeviceInfoPrivate(dd))
+ d_ptr(&dd)
{
}
/*!
Destroys the CAN bus device info.
*/
-QCanBusDeviceInfo::~QCanBusDeviceInfo()
-{
-}
+QCanBusDeviceInfo::~QCanBusDeviceInfo() = default;
/*!
\fn void QCanBusDeviceInfo::swap(QCanBusDeviceInfo &other)
@@ -88,16 +75,17 @@ QCanBusDeviceInfo::~QCanBusDeviceInfo()
and never fails.
*/
+/*!
+ \fn QCanBusDeviceInfo &QCanBusDeviceInfo::operator=(QCanBusDeviceInfo &&other)
+
+ Move-assigns other to this QCanBusDeviceInfo instance.
+*/
/*!
Assigns \a other to this CAN bus device info and returns a reference to this
CAN bus device info.
*/
-QCanBusDeviceInfo &QCanBusDeviceInfo::operator=(const QCanBusDeviceInfo &other)
-{
- QCanBusDeviceInfo(other).swap(*this);
- return *this;
-}
+QCanBusDeviceInfo &QCanBusDeviceInfo::operator=(const QCanBusDeviceInfo &) = default;
/*!
Returns the interface name of this CAN bus interface, e.g. can0.
diff --git a/src/serialbus/qcanbusdeviceinfo.h b/src/serialbus/qcanbusdeviceinfo.h
index b21a4b3..2559d09 100644
--- a/src/serialbus/qcanbusdeviceinfo.h
+++ b/src/serialbus/qcanbusdeviceinfo.h
@@ -49,7 +49,7 @@ class QCanBusDeviceInfoPrivateDeleter;
class Q_SERIALBUS_EXPORT QCanBusDeviceInfo
{
public:
- QCanBusDeviceInfo();
+ QCanBusDeviceInfo() = delete;
QCanBusDeviceInfo(const QCanBusDeviceInfo &other);
~QCanBusDeviceInfo();