summaryrefslogtreecommitdiffstats
path: root/src/serialport/qserialport_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/serialport/qserialport_p.h')
-rw-r--r--src/serialport/qserialport_p.h18
1 files changed, 7 insertions, 11 deletions
diff --git a/src/serialport/qserialport_p.h b/src/serialport/qserialport_p.h
index 7348aed6..b0955aef 100644
--- a/src/serialport/qserialport_p.h
+++ b/src/serialport/qserialport_p.h
@@ -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)