package com.faforever.client.remote.io;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class QDataOutputStream extends DataOutputStream {
/**
* FAF currently ready/writes QByteArrays as QVariant, which is like the "object writer" for QT. To know what data
* type is being read, a "type of the data" number prefixes the data. This constant holds this value.
* <p>
* See <a href="http://doc.qt.io/qt-4.8/datastreamformat.html">http://doc.qt.io/qt-4.8/datastreamformat.html</a>
*/
private static final int Q_BYTE_ARRAY_DATA_TYPE = 12;
public QDataOutputStream(OutputStream outputStream) {
super(outputStream);
}
public void writeQByteArray(byte[] data) throws IOException {
writeInt(Q_BYTE_ARRAY_DATA_TYPE);
writeByte(0);
if (data == null) {
writeInt(-1);
} else {
writeInt(data.length);
write(data);
}
}
}