File indexing completed on 2024-11-10 04:40:27

0001 /*
0002     SPDX-FileCopyrightText: 2009 Kevin Ottens <ervin@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "collectionquotaattribute.h"
0008 
0009 #include <QByteArray>
0010 
0011 using namespace Akonadi;
0012 
0013 class Akonadi::CollectionQuotaAttributePrivate
0014 {
0015 public:
0016     qint64 mCurrentValue = -1;
0017     qint64 mMaximumValue = -1;
0018 };
0019 
0020 CollectionQuotaAttribute::CollectionQuotaAttribute()
0021     : d(new CollectionQuotaAttributePrivate())
0022 {
0023 }
0024 
0025 CollectionQuotaAttribute::CollectionQuotaAttribute(qint64 currentValue, qint64 maxValue)
0026     : d(new CollectionQuotaAttributePrivate())
0027 {
0028     d->mCurrentValue = currentValue;
0029     d->mMaximumValue = maxValue;
0030 }
0031 
0032 CollectionQuotaAttribute::~CollectionQuotaAttribute() = default;
0033 
0034 void CollectionQuotaAttribute::setCurrentValue(qint64 value)
0035 {
0036     d->mCurrentValue = value;
0037 }
0038 
0039 void CollectionQuotaAttribute::setMaximumValue(qint64 value)
0040 {
0041     d->mMaximumValue = value;
0042 }
0043 
0044 qint64 CollectionQuotaAttribute::currentValue() const
0045 {
0046     return d->mCurrentValue;
0047 }
0048 
0049 qint64 CollectionQuotaAttribute::maximumValue() const
0050 {
0051     return d->mMaximumValue;
0052 }
0053 
0054 QByteArray CollectionQuotaAttribute::type() const
0055 {
0056     return QByteArrayLiteral("collectionquota");
0057 }
0058 
0059 Akonadi::Attribute *CollectionQuotaAttribute::clone() const
0060 {
0061     return new CollectionQuotaAttribute(d->mCurrentValue, d->mMaximumValue);
0062 }
0063 
0064 QByteArray CollectionQuotaAttribute::serialized() const
0065 {
0066     return QByteArray::number(d->mCurrentValue) + ' ' + QByteArray::number(d->mMaximumValue);
0067 }
0068 
0069 void CollectionQuotaAttribute::deserialize(const QByteArray &data)
0070 {
0071     d->mCurrentValue = -1;
0072     d->mMaximumValue = -1;
0073 
0074     const QList<QByteArray> items = data.simplified().split(' ');
0075 
0076     if (items.isEmpty()) {
0077         return;
0078     }
0079 
0080     d->mCurrentValue = items[0].toLongLong();
0081 
0082     if (items.size() < 2) {
0083         return;
0084     }
0085 
0086     d->mMaximumValue = items[1].toLongLong();
0087 }