1 #include "QxtNamedPipe.h"
5 # error "No Windows implementation for QxtNamedPipe"
8 class QxtNamedPipePrivate : public QxtPrivate<QxtNamedPipe>
11 QxtNamedPipePrivate();
12 QXT_DECLARE_PUBLIC(QxtNamedPipe);
18 QxtNamedPipe::QxtNamedPipe(const QString& name, QObject* parent) : QAbstractSocket(QAbstractSocket::UnknownSocketType, parent)
20 QXT_INIT_PRIVATE(QxtNamedPipe);
21 qxt_d().pipeName = name;
25 bool QxtNamedPipe::open(QIODevice::OpenMode mode)
28 if (!(mode & QIODevice::ReadOnly)) m = O_WRONLY;
29 else if (!(mode & QIODevice::WriteOnly)) m = O_RDONLY;
30 qxt_d().fd = ::open(qPrintable(qxt_d().pipeName), m);
31 return (qxt_d().fd != 0);
34 bool QxtNamedPipe::open(const QString& name, QIODevice::OpenMode mode)
36 qxt_d().pipeName = name;
37 return QxtNamedPipe::open(mode);
40 void QxtNamedPipe::close()
42 if (qxt_d().fd) ::close(qxt_d().fd);
45 QByteArray QxtNamedPipe::readAvailableBytes()
49 while (getChar(&ch)) rv += ch;