You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
850 B
C++
34 lines
850 B
C++
#include "AbstractNamedTag.h"
|
|
|
|
#include <QtEndian>
|
|
#include <QtCore/QDataStream>
|
|
|
|
AbstractNamedTag::AbstractNamedTag(const quint8 id) : AbstractTag(id) {}
|
|
|
|
const bool AbstractNamedTag::readFromData(QDataStream &data) {
|
|
quint16 size;
|
|
|
|
data >> size;
|
|
size = qFromBigEndian(size);
|
|
|
|
char *rawName = new char[size];
|
|
if (data.readRawData(rawName, size) == -1) {
|
|
return false;
|
|
}
|
|
|
|
m_name = QString::fromUtf8(rawName);
|
|
return readPayloadFromData(data);
|
|
}
|
|
const bool AbstractNamedTag::writeToData(QDataStream &data) const {
|
|
const QByteArray rawName = m_name.toUtf8();
|
|
|
|
data << qToBigEndian(rawName.size()) << rawName.constData();
|
|
return writePayloadToData(data);
|
|
}
|
|
|
|
const QString &AbstractNamedTag::name() const {
|
|
return m_name;
|
|
}
|
|
void AbstractNamedTag::setName(const QString &name) {
|
|
m_name = name;
|
|
} |