diff options
Diffstat (limited to 'src/serialport/qserialport_p.h')
-rw-r--r-- | src/serialport/qserialport_p.h | 56 |
1 files changed, 26 insertions, 30 deletions
diff --git a/src/serialport/qserialport_p.h b/src/serialport/qserialport_p.h index d0524dab..b0955aef 100644 --- a/src/serialport/qserialport_p.h +++ b/src/serialport/qserialport_p.h @@ -7,8 +7,7 @@ ** ** This file is part of the QtSerialPort module of the Qt Toolkit. ** -** $QT_BEGIN_LICENSE:COMM$ -** +** $QT_BEGIN_LICENSE:LGPL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the @@ -17,25 +16,26 @@ ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** -** $QT_END_LICENSE$ -** -** -** -** -** -** -** -** -** -** -** -** -** -** -** -** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. ** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. ** +** $QT_END_LICENSE$ ** ****************************************************************************/ @@ -104,6 +104,7 @@ struct serial_struct { QT_BEGIN_NAMESPACE +class QWinOverlappedIoNotifier; class QTimer; class QSocketNotifier; @@ -181,6 +182,7 @@ public: bool setDcb(DCB *dcb); bool getDcb(DCB *dcb); + OVERLAPPED *waitForNotified(QDeadlineTimer deadline); qint64 queuedBytesCount(QSerialPort::Direction direction) const; @@ -190,15 +192,10 @@ public: bool startAsyncCommunication(); bool _q_startAsyncWrite(); - void handleNotification(DWORD bytesTransferred, DWORD errorCode, - OVERLAPPED *overlapped); + void _q_notified(DWORD numberOfBytes, DWORD errorCode, OVERLAPPED *overlapped); void emitReadyRead(); - static void CALLBACK ioCompletionRoutine( - DWORD errorCode, DWORD bytesTransfered, - OVERLAPPED *overlappedBase); - DCB restoredDcb; COMMTIMEOUTS currentCommTimeouts; COMMTIMEOUTS restoredCommTimeouts; @@ -208,12 +205,11 @@ public: bool communicationStarted = false; bool writeStarted = false; bool readStarted = false; - qint64 writeBytesTransferred = 0; - qint64 readBytesTransferred = 0; + QWinOverlappedIoNotifier *notifier = nullptr; QTimer *startAsyncWriteTimer = nullptr; - class Overlapped *communicationCompletionOverlapped = nullptr; - class Overlapped *readCompletionOverlapped = nullptr; - class Overlapped *writeCompletionOverlapped = nullptr; + OVERLAPPED communicationOverlapped; + OVERLAPPED readCompletionOverlapped; + OVERLAPPED writeCompletionOverlapped; DWORD triggeredEventMask = 0; #elif defined(Q_OS_UNIX) |