Heart/ClientProtocol/package.cpp

37 lines
609 B
C++
Raw Normal View History

2019-10-20 15:53:20 +03:00
#include "abstractdata.h"
#include "package.h"
2019-10-19 22:27:58 +03:00
namespace ClientProtocol {
2019-10-20 15:53:20 +03:00
Package::Package() {
2019-10-19 22:27:58 +03:00
reset();
}
2019-10-20 15:53:20 +03:00
bool Package::isValid() const {
2019-10-19 22:27:58 +03:00
if (!hdr.isValid()) {
return false;
}
if (data.size() && hdr.command != data.at(0)) {
return false;
}
return hdr.size == static_cast<unsigned int> (data.size());
}
2019-10-20 15:53:20 +03:00
QByteArray Package::toBytes() const {
2019-10-19 22:27:58 +03:00
QByteArray res;
2019-10-20 15:53:20 +03:00
res.append(reinterpret_cast<char*>(const_cast<Header*>(&hdr)),
2019-10-19 22:27:58 +03:00
sizeof (hdr));
res.append(data);
return res;
}
2019-10-20 15:53:20 +03:00
void Package::reset() {
2019-10-19 22:27:58 +03:00
hdr.reset();
data.clear();
}
}