Source

Target

Commits (3)
Showing with 14 additions and 4 deletions
......@@ -64,6 +64,7 @@ QT_BEGIN_NAMESPACE
class ReadNotifier : public QSocketNotifier
{
Q_OBJECT
public:
ReadNotifier(QSerialPortPrivate *d, QObject *parent)
: QSocketNotifier(d->descriptor, QSocketNotifier::Read, parent)
......@@ -84,6 +85,7 @@ private:
class WriteNotifier : public QSocketNotifier
{
Q_OBJECT
public:
WriteNotifier(QSerialPortPrivate *d, QObject *parent)
: QSocketNotifier(d->descriptor, QSocketNotifier::Write, parent)
......@@ -104,6 +106,7 @@ private:
class ExceptionNotifier : public QSocketNotifier
{
Q_OBJECT
public:
ExceptionNotifier(QSerialPortPrivate *d, QObject *parent)
: QSocketNotifier(d->descriptor, QSocketNotifier::Exception, parent)
......@@ -122,6 +125,8 @@ private:
QSerialPortPrivate *dptr;
};
#include "qserialport_unix.moc"
QSerialPortPrivate::QSerialPortPrivate(QSerialPort *q)
: QSerialPortPrivateData(q)
, descriptor(-1)
......
......@@ -89,6 +89,7 @@ QT_BEGIN_NAMESPACE
class AbstractOverlappedEventNotifier : public QWinEventNotifier
{
Q_OBJECT
public:
enum Type { CommEvent, ReadCompletionEvent, WriteCompletionEvent };
......@@ -104,7 +105,6 @@ public:
virtual ~AbstractOverlappedEventNotifier() {
setEnabled(false);
::CancelIo(o.hEvent);
::CloseHandle(o.hEvent);
}
......@@ -126,6 +126,7 @@ protected:
class CommOverlappedEventNotifier : public AbstractOverlappedEventNotifier
{
Q_OBJECT
public:
CommOverlappedEventNotifier(QSerialPortPrivate *d, DWORD eventMask, QObject *parent)
: AbstractOverlappedEventNotifier(d, CommEvent, false, parent)
......@@ -172,6 +173,7 @@ private:
class ReadOverlappedCompletionNotifier : public AbstractOverlappedEventNotifier
{
Q_OBJECT
public:
ReadOverlappedCompletionNotifier(QSerialPortPrivate *d, QObject *parent)
: AbstractOverlappedEventNotifier(d, ReadCompletionEvent, false, parent) {}
......@@ -186,7 +188,7 @@ public:
dptr->startAsyncRead();
} else { // driver queue is emplty, so startup wait comm event
CommOverlappedEventNotifier *n =
reinterpret_cast<CommOverlappedEventNotifier *>(dptr->lookupCommEventNotifier());
qobject_cast<CommOverlappedEventNotifier *>(dptr->lookupCommEventNotifier());
if (n)
n->startWaitCommEvent();
}
......@@ -197,6 +199,7 @@ public:
class WriteOverlappedCompletionNotifier : public AbstractOverlappedEventNotifier
{
Q_OBJECT
public:
WriteOverlappedCompletionNotifier(QSerialPortPrivate *d, QObject *parent)
: AbstractOverlappedEventNotifier(d, WriteCompletionEvent, false, parent) {}
......@@ -209,6 +212,8 @@ public:
}
};
#include "qserialport_win.moc"
QSerialPortPrivate::QSerialPortPrivate(QSerialPort *q)
: QSerialPortPrivateData(q)
, descriptor(INVALID_HANDLE_VALUE)
......
......@@ -154,6 +154,8 @@ private:
mutable bool worked;
};
#include "qserialport_wince.moc"
QSerialPortPrivate::QSerialPortPrivate(QSerialPort *q)
: QSerialPortPrivateData(q)
, descriptor(INVALID_HANDLE_VALUE)
......@@ -518,6 +520,4 @@ QString QSerialPortPrivate::portNameFromSystemLocation(const QString &location)
return ret;
}
#include "qserialport_wince.moc"
QT_END_NAMESPACE