void BinTreeNodeReader::fillArray(QByteArray& buffer, quint32 len) { Utilities::logData("Debug: BinTreeNodeReader::fillArray"); char data[1025]; buffer.clear(); // bool ready = true; /* if (socket->bytesAvailable() < 1) { Utilities::logData("fillArray() waiting for bytes"); ready = socket->waitForReadyRead(READ_TIMEOUT); } if (!ready) { Utilities::logData("fillArray() not ready / timed out"); throw IOException(socket->error()); } */ int needToRead = len; while (needToRead > 0) { Utilities::logData("Debug: BinTreeNodeReader::fillArray--loop"); int bytesRead = socket->read(data,(needToRead > 1024) ? 1024 : needToRead); if (bytesRead < 0) throw IOException(socket->error()); if (bytesRead == 0) // socket->waitForReadyRead(READ_TIMEOUT); qApp->processEvents(); else { needToRead -= bytesRead; buffer.append(data,bytesRead); } } }