File indexing completed on 2024-04-28 05:36:52

0001 /*
0002  * SPDX-License-Identifier: LGPL-2.0-or-later
0003  *
0004  * SPDX-FileCopyrightText: 2022 Aleix Pol <apol@kde.org>
0005  */
0006 
0007 #include "restoredata.h"
0008 
0009 #include <QDBusMetaType>
0010 #include <QDataStream>
0011 #include <QIODevice>
0012 
0013 const QDBusArgument &operator<<(QDBusArgument &arg, const RestoreData &data)
0014 {
0015     arg.beginStructure();
0016     arg << data.session;
0017     arg << data.version;
0018 
0019     QByteArray payloadSerialised;
0020     {
0021         QDataStream ds(&payloadSerialised, QIODevice::WriteOnly);
0022         ds << data.payload;
0023     }
0024 
0025     arg << QDBusVariant(payloadSerialised);
0026     arg.endStructure();
0027     return arg;
0028 }
0029 const QDBusArgument &operator>>(const QDBusArgument &arg, RestoreData &data)
0030 {
0031     arg.beginStructure();
0032     arg >> data.session;
0033     arg >> data.version;
0034 
0035     QDBusVariant payloadVariant;
0036     arg >> payloadVariant;
0037     {
0038         QByteArray payloadSerialised = payloadVariant.variant().toByteArray();
0039         QDataStream ds(&payloadSerialised, QIODevice::ReadOnly);
0040         ds >> data.payload;
0041     }
0042     arg.endStructure();
0043     return arg;
0044 }
0045 
0046 QDebug operator<<(QDebug dbg, const RestoreData &c)
0047 {
0048     dbg.nospace() << "RestoreData(" << c.session << ", " << c.version << ", " << c.payload << ")";
0049     return dbg.space();
0050 }