summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Shienkov <denis.shienkov@gmail.com>2015-05-12 17:31:08 +0300
committerDenis Shienkov <denis.shienkov@gmail.com>2015-06-30 11:46:09 +0000
commit96365c1edc5282b6ec7332f79f2f698ce5f6b6be (patch)
treebb3327df134aae7e8cf476eaf963532d92d17cf3
parentbc948f5f695908ad11a19b1336975d07ff1de0e1 (diff)
downloadqtserialport-96365c1edc5282b6ec7332f79f2f698ce5f6b6be.tar.gz
Get rid of QSPP::readData()
Because we now (in the Qt 5.5 branch) use QIODevicePrivate's internal read buffer directly, there is no need to call buffer.read() in QSP::readData(). There is also no point in keeping the platform-specific implementations of QSPP::readData(), so remove them. Tested on Windows using the virtual com0com serial ports, and on Linux usig the virtual tty0tty serial ports. Change-Id: I136c6d10708cc6fc99a77c351c3945470530845d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Alex Trotsenko <alex1973tr@gmail.com>
-rw-r--r--src/serialport/qserialport.cpp19
-rw-r--r--src/serialport/qserialport_p.h2
-rw-r--r--src/serialport/qserialport_unix.cpp5
-rw-r--r--src/serialport/qserialport_win.cpp16
-rw-r--r--src/serialport/qserialport_wince.cpp5
5 files changed, 18 insertions, 29 deletions
diff --git a/src/serialport/qserialport.cpp b/src/serialport/qserialport.cpp
index 9d5aa40..b252152 100644
--- a/src/serialport/qserialport.cpp
+++ b/src/serialport/qserialport.cpp
@@ -1341,10 +1341,27 @@ bool QSerialPort::isBreakEnabled() const
/*!
\reimp
*/
+// This function does not really read anything, as we use QIODevicePrivate's
+// buffer. The buffer will be read inside of QIODevice before this
+// method will be called.
qint64 QSerialPort::readData(char *data, qint64 maxSize)
{
Q_D(QSerialPort);
- return d->readData(data, maxSize);
+
+ Q_UNUSED(data);
+ Q_UNUSED(maxSize);
+
+#ifdef Q_OS_WIN32
+ // We need try to start async reading to read a remainder from a driver's queue
+ // in case we have a limited read buffer size. Because the read notification can
+ // be stalled since Windows do not re-triggered an EV_RXCHAR event if a driver's
+ // buffer has a remainder of data ready to read until a new data will be received.
+ if (d->readBufferMaxSize || d->flowControl == QSerialPort::HardwareControl)
+ d->startAsyncRead();
+#endif
+
+ // return 0 indicating there may be more data in the future
+ return qint64(0);
}
/*!
diff --git a/src/serialport/qserialport_p.h b/src/serialport/qserialport_p.h
index 7da2204..9d634b1 100644
--- a/src/serialport/qserialport_p.h
+++ b/src/serialport/qserialport_p.h
@@ -133,8 +133,6 @@ public:
bool sendBreak(int duration);
bool setBreakEnabled(bool set);
- qint64 readData(char *data, qint64 maxSize);
-
bool waitForReadyRead(int msec);
bool waitForBytesWritten(int msec);
diff --git a/src/serialport/qserialport_unix.cpp b/src/serialport/qserialport_unix.cpp
index 1f90a18..14180ec 100644
--- a/src/serialport/qserialport_unix.cpp
+++ b/src/serialport/qserialport_unix.cpp
@@ -372,11 +372,6 @@ bool QSerialPortPrivate::setBreakEnabled(bool set)
return true;
}
-qint64 QSerialPortPrivate::readData(char *data, qint64 maxSize)
-{
- return buffer.read(data, maxSize);
-}
-
bool QSerialPortPrivate::waitForReadyRead(int msecs)
{
QElapsedTimer stopWatch;
diff --git a/src/serialport/qserialport_win.cpp b/src/serialport/qserialport_win.cpp
index e6e6924..5f4da9d 100644
--- a/src/serialport/qserialport_win.cpp
+++ b/src/serialport/qserialport_win.cpp
@@ -252,22 +252,6 @@ bool QSerialPortPrivate::setBreakEnabled(bool set)
return true;
}
-qint64 QSerialPortPrivate::readData(char *data, qint64 maxSize)
-{
- Q_UNUSED(data);
- Q_UNUSED(maxSize);
-
- // We need try to start async reading to read a remainder from a driver's queue
- // in case we have a limited read buffer size. Because the read notification can
- // be stalled since Windows do not re-triggered an EV_RXCHAR event if a driver's
- // buffer has a remainder of data ready to read until a new data will be received.
- if (readBufferMaxSize || flowControl == QSerialPort::HardwareControl)
- startAsyncRead();
-
- // return 0 indicating there may be more data in the future
- return qint64(0);
-}
-
bool QSerialPortPrivate::waitForReadyRead(int msecs)
{
if (!writeStarted && !_q_startAsyncWrite())
diff --git a/src/serialport/qserialport_wince.cpp b/src/serialport/qserialport_wince.cpp
index b8affb6..86cbcb0 100644
--- a/src/serialport/qserialport_wince.cpp
+++ b/src/serialport/qserialport_wince.cpp
@@ -329,11 +329,6 @@ bool QSerialPortPrivate::setBreakEnabled(bool set)
return true;
}
-qint64 QSerialPortPrivate::readData(char *data, qint64 maxSize)
-{
- return buffer.read(data, maxSize);
-}
-
bool QSerialPortPrivate::waitForReadyRead(int msec)
{
if (!buffer.isEmpty())