File indexing completed on 2025-03-09 04:54:30

0001 /*
0002    SPDX-FileCopyrightText: 2019-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "dkimresultattribute.h"
0008 #include <QDataStream>
0009 #include <QIODevice>
0010 
0011 using namespace MessageViewer;
0012 class MessageViewer::DKIMResultAttributePrivate
0013 {
0014 public:
0015     DKIMResultAttributePrivate() = default;
0016 
0017     int error = -1;
0018     int warning = -1;
0019     int status = -1;
0020 };
0021 
0022 DKIMResultAttribute::DKIMResultAttribute()
0023     : d(new DKIMResultAttributePrivate)
0024 {
0025 }
0026 
0027 DKIMResultAttribute::~DKIMResultAttribute() = default;
0028 
0029 QByteArray DKIMResultAttribute::type() const
0030 {
0031     static const QByteArray sType("DKIMResultAttribute");
0032     return sType;
0033 }
0034 
0035 DKIMResultAttribute *DKIMResultAttribute::clone() const
0036 {
0037     auto attr = new DKIMResultAttribute();
0038     attr->setWarning(warning());
0039     attr->setStatus(status());
0040     attr->setError(error());
0041     return attr;
0042 }
0043 
0044 QByteArray DKIMResultAttribute::serialized() const
0045 {
0046     QByteArray result;
0047     QDataStream s(&result, QIODevice::WriteOnly);
0048     s.setVersion(QDataStream::Qt_5_15);
0049     s << status();
0050     s << warning();
0051     s << error();
0052     return result;
0053 }
0054 
0055 void DKIMResultAttribute::deserialize(const QByteArray &data)
0056 {
0057     QDataStream s(data);
0058     s.setVersion(QDataStream::Qt_5_15);
0059     int stat = -1;
0060     s >> stat;
0061     d->status = stat;
0062     int warn = -1;
0063     s >> warn;
0064     d->warning = warn;
0065     int err = -1;
0066     s >> err;
0067     d->error = err;
0068 }
0069 
0070 bool DKIMResultAttribute::operator==(const DKIMResultAttribute &other) const
0071 {
0072     return d->error == other.error() && d->warning == other.warning() && d->status == other.status();
0073 }
0074 
0075 void DKIMResultAttribute::setError(int err)
0076 {
0077     d->error = err;
0078 }
0079 
0080 int DKIMResultAttribute::error() const
0081 {
0082     return d->error;
0083 }
0084 
0085 void DKIMResultAttribute::setWarning(int err)
0086 {
0087     d->warning = err;
0088 }
0089 
0090 int DKIMResultAttribute::warning() const
0091 {
0092     return d->warning;
0093 }
0094 
0095 void DKIMResultAttribute::setStatus(int err)
0096 {
0097     d->status = err;
0098 }
0099 
0100 int DKIMResultAttribute::status() const
0101 {
0102     return d->status;
0103 }