| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- /*
- This file is part of Telegram Desktop,
- the official desktop application for the Telegram messaging service.
- For license and copyright information please follow this link:
- https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
- */
- #include "storage/serialize_common.h"
- namespace Serialize {
- ByteArrayWriter::ByteArrayWriter(int expectedSize)
- : _stream(&_result, QIODevice::WriteOnly) {
- if (expectedSize) {
- _result.reserve(expectedSize);
- }
- _stream.setVersion(QDataStream::Qt_5_1);
- }
- QByteArray ByteArrayWriter::result() && {
- _stream.device()->close();
- return std::move(_result);
- }
- ByteArrayReader::ByteArrayReader(QByteArray data)
- : _data(std::move(data))
- , _stream(&_data, QIODevice::ReadOnly) {
- _stream.setVersion(QDataStream::Qt_5_1);
- }
- void writeColor(QDataStream &stream, const QColor &color) {
- stream << (quint32(uchar(color.red()))
- | (quint32(uchar(color.green())) << 8)
- | (quint32(uchar(color.blue())) << 16)
- | (quint32(uchar(color.alpha())) << 24));
- }
- QColor readColor(QDataStream &stream) {
- auto value = quint32();
- stream >> value;
- return QColor(
- int(value & 0xFFU),
- int((value >> 8) & 0xFFU),
- int((value >> 16) & 0xFFU),
- int((value >> 24) & 0xFFU));
- }
- } // namespace Serialize
|