QDataStream::QDataStream(QByteArray *a, QIODevice::OpenMode flags) { QBuffer *buf = new QBuffer(a); #ifndef QT_NO_QOBJECT buf->blockSignals(true); #endif buf->open(flags); dev = buf; owndev = true; byteorder = BigEndian; ver = DefaultStreamVersion; noswap = QSysInfo::ByteOrder == QSysInfo::BigEndian; q_status = Ok; }
/*! Constructs a read-only data stream that operates on byte array \a a. Use QDataStream(QByteArray*, int) if you want to write to a byte array. Since QByteArray is not a QIODevice subclass, internally a QBuffer is created to wrap the byte array. */ QDataStream::QDataStream(const QByteArray &a) { QBuffer *buf = new QBuffer; #ifndef QT_NO_QOBJECT buf->blockSignals(true); #endif buf->setData(a); buf->open(QIODevice::ReadOnly); dev = buf; owndev = true; byteorder = BigEndian; ver = DefaultStreamVersion; noswap = QSysInfo::ByteOrder == QSysInfo::BigEndian; q_status = Ok; }