QByteArray QProcessProto::read(qint64 maxSize) { QProcess *item = qscriptvalue_cast<QProcess*>(thisObject()); if (item) return item->read(maxSize); return QByteArray(); }
qint64 BlockingIODevice::readData(char * data, qint64 maxSize) { qint64 bytesToRead = maxSize; qint64 readSoFar = 0; do { qint64 chunkSize = m_device->read(data + readSoFar, bytesToRead); if (chunkSize < 0) { if (readSoFar) { return readSoFar; } else { return chunkSize; } } Q_ASSERT(chunkSize <= bytesToRead); bytesToRead -= chunkSize; readSoFar += chunkSize; if (bytesToRead) { if (!m_device->waitForReadyRead(-1)) { qDebug() << "waitForReadyRead failed\n"; break; } } } while(bytesToRead); return readSoFar; }
qint64 QProcessProto::read(char *data, qint64 maxSize) { QProcess *item = qscriptvalue_cast<QProcess*>(thisObject()); if (item) return item->read(data, maxSize); return 0; }