diff options
author | Denis Shienkov <denis.shienkov@gmail.com> | 2014-11-16 14:59:22 +0300 |
---|---|---|
committer | Denis Shienkov <denis.shienkov@gmail.com> | 2014-11-16 18:59:25 +0100 |
commit | 2c171c043ce3c4ca40c8dd91971192efe3c0465e (patch) | |
tree | 52edc3720c61ee704b49d306c73cabe6fd27a122 /src | |
parent | 22b4e280a16d47b5f46706cf80d976259e519007 (diff) | |
download | qtserialport-2c171c043ce3c4ca40c8dd91971192efe3c0465e.tar.gz |
Use QIODevicePrivate for PIMPL
It is reasonable to get rid of excess D/Q pointers and to use their
equivalents from QIODevicePrivate. Also in the future it will allow
to use the internal read buffer of QIODevicePrivate.
Tested on Windows 8 and Linux with the on-board and com0com serial
ports.
Change-Id: I9d0923c6f9adc5981dc49dacea163b286620ed5c
Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/serialport/qserialport.cpp | 19 | ||||
-rw-r--r-- | src/serialport/qserialport.h | 3 | ||||
-rw-r--r-- | src/serialport/qserialport_p.h | 6 |
3 files changed, 14 insertions, 14 deletions
diff --git a/src/serialport/qserialport.cpp b/src/serialport/qserialport.cpp index 0312b44..bbbfaf8 100644 --- a/src/serialport/qserialport.cpp +++ b/src/serialport/qserialport.cpp @@ -43,7 +43,7 @@ QT_BEGIN_NAMESPACE -QSerialPortPrivate::QSerialPortPrivate(QSerialPort *q) +QSerialPortPrivate::QSerialPortPrivate() : readBufferMaxSize(0) , readBuffer(SERIALPORT_BUFFERSIZE) , writeBuffer(SERIALPORT_BUFFERSIZE) @@ -60,7 +60,6 @@ QSerialPortPrivate::QSerialPortPrivate(QSerialPort *q) #if QT_DEPRECATED_SINCE(5,3) , settingsRestoredOnClose(true) #endif - , q_ptr(q) #if defined (Q_OS_WINCE) , handle(INVALID_HANDLE_VALUE) , parityErrorOccurred(false) @@ -400,9 +399,10 @@ int QSerialPortPrivate::timeoutValue(int msecs, int elapsed) Constructs a new serial port object with the given \a parent. */ QSerialPort::QSerialPort(QObject *parent) - : QIODevice(parent) - , d_ptr(new QSerialPortPrivate(this)) -{} + : QIODevice(*new QSerialPortPrivate, parent) + , d_dummy(0) +{ +} /*! Constructs a new serial port object with the given \a parent @@ -411,8 +411,8 @@ QSerialPort::QSerialPort(QObject *parent) The name should have a specific format; see the setPort() method. */ QSerialPort::QSerialPort(const QString &name, QObject *parent) - : QIODevice(parent) - , d_ptr(new QSerialPortPrivate(this)) + : QIODevice(*new QSerialPortPrivate, parent) + , d_dummy(0) { setPortName(name); } @@ -423,8 +423,8 @@ QSerialPort::QSerialPort(const QString &name, QObject *parent) \a serialPortInfo. */ QSerialPort::QSerialPort(const QSerialPortInfo &serialPortInfo, QObject *parent) - : QIODevice(parent) - , d_ptr(new QSerialPortPrivate(this)) + : QIODevice(*new QSerialPortPrivate, parent) + , d_dummy(0) { setPort(serialPortInfo); } @@ -437,7 +437,6 @@ QSerialPort::~QSerialPort() /**/ if (isOpen()) close(); - delete d_ptr; } /*! diff --git a/src/serialport/qserialport.h b/src/serialport/qserialport.h index a8f9a05..d1a66ce 100644 --- a/src/serialport/qserialport.h +++ b/src/serialport/qserialport.h @@ -269,7 +269,8 @@ protected: private: void setError(QSerialPort::SerialPortError error, const QString &errorString = QString()); - QSerialPortPrivate * const d_ptr; + // ### Qt6: remove me. + QSerialPortPrivate * const d_dummy; Q_DISABLE_COPY(QSerialPort) diff --git a/src/serialport/qserialport_p.h b/src/serialport/qserialport_p.h index f0d6fff..4dcf634 100644 --- a/src/serialport/qserialport_p.h +++ b/src/serialport/qserialport_p.h @@ -50,6 +50,7 @@ #include "qserialport.h" #include <private/qringbuffer_p.h> +#include <private/qiodevice_p.h> #if defined (Q_OS_WINCE) # include <QtCore/qmutex.h> @@ -108,7 +109,7 @@ class QSocketNotifier; QString serialPortLockFilePath(const QString &portName); #endif -class QSerialPortPrivate +class QSerialPortPrivate : public QIODevicePrivate { Q_DECLARE_PUBLIC(QSerialPort) public: @@ -116,7 +117,7 @@ public: ReadChunkSize = 512 }; - QSerialPortPrivate(QSerialPort *q); + QSerialPortPrivate(); int timeoutValue(int msecs, int elapsed); @@ -175,7 +176,6 @@ public: bool dataTerminalReady; bool requestToSend; bool settingsRestoredOnClose; - QSerialPort * const q_ptr; #if defined (Q_OS_WINCE) |