ff4ff35918
Red Bear OS is a full fork. All sources must be available from git clone with zero network access. Removed gitignore rules that excluded fetched source trees under recipes/*/source/, local/recipes/kde/*/source/, local/recipes/qt/*/source/, and vendor source trees. Build artifacts (target/, build/, source.tar, *.o, *.so) remain excluded. 127291 files added — kernel, relibc, base, bootloader, pkgar, all KDE/Qt frameworks, mesa, wayland, DRM drivers, and every other recipe source.
100 lines
2.3 KiB
C++
100 lines
2.3 KiB
C++
// Copyright (C) 2021 The Qt Company Ltd.
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
|
|
|
#include "message.h"
|
|
#include <QtNetwork/qlocalsocket.h>
|
|
|
|
QT_BEGIN_NAMESPACE
|
|
|
|
|
|
Message::Type Message::type() const { return Message::Type::Invalid; }
|
|
|
|
UniformsMessage::~UniformsMessage()
|
|
{
|
|
|
|
}
|
|
|
|
bool UniformsMessage::read(QDataStream &stream)
|
|
{
|
|
stream >> uniforms;
|
|
return (stream.status() == QDataStream::Ok);
|
|
}
|
|
|
|
bool UniformsMessage::write(QDataStream &stream) const
|
|
{
|
|
if (uniforms.size() > 0)
|
|
stream << id.toByteArray() << uniforms;
|
|
|
|
return (stream.status() == QDataStream::Ok);
|
|
}
|
|
|
|
FilenamesMessage::~FilenamesMessage()
|
|
{
|
|
|
|
}
|
|
|
|
bool FilenamesMessage::read(QDataStream &stream)
|
|
{
|
|
stream >> vertFilename >> fragFilename;
|
|
return (stream.status() == QDataStream::Ok);
|
|
}
|
|
|
|
bool FilenamesMessage::write(QDataStream &stream) const
|
|
{
|
|
stream << vertFilename << fragFilename;
|
|
return (stream.status() == QDataStream::Ok);
|
|
}
|
|
|
|
Message::~Message()
|
|
{
|
|
|
|
}
|
|
|
|
Message::MessagePtr Message::getMessage(QIODevice &device)
|
|
{
|
|
if (device.isOpen()) {
|
|
if (device.isReadable()) {
|
|
QByteArray id;
|
|
QDataStream stream(&device);
|
|
stream >> id;
|
|
if (UniformsMessage::id == id) {
|
|
UniformsMessage uniforms;
|
|
if (uniforms.read(stream))
|
|
return std::make_shared<UniformsMessage>(uniforms);
|
|
} else if (id == FilenamesMessage::id) {
|
|
FilenamesMessage filenames;
|
|
if (filenames.read(stream))
|
|
return std::make_shared<FilenamesMessage>(filenames);
|
|
} else {
|
|
qDebug("Unknown message!");
|
|
}
|
|
} else {
|
|
qDebug("Device not writeable!");
|
|
}
|
|
} else {
|
|
qDebug("Device not open!");
|
|
}
|
|
|
|
return Message::MessagePtr();
|
|
}
|
|
|
|
bool Message::postMessage(QIODevice &device, const Message &message)
|
|
{
|
|
bool ok = false;
|
|
if (device.isOpen()) {
|
|
if (device.isWritable()) {
|
|
QDataStream stream(&device);
|
|
stream << message;
|
|
ok = (stream.status() == QDataStream::Ok);
|
|
} else {
|
|
qDebug("Device not writeable!");
|
|
}
|
|
} else {
|
|
qDebug("Device not open!");
|
|
}
|
|
|
|
return ok;
|
|
}
|
|
|
|
QT_END_NAMESPACE
|