File indexing completed on 2024-05-12 05:17:15

0001 /*
0002     SPDX-FileCopyrightText: 2009 Andras Mantia <amantia@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "quotajobbase.h"
0008 #include "quotajobbase_p.h"
0009 #include "response_p.h"
0010 #include "session_p.h"
0011 
0012 #include <KLocalizedString>
0013 
0014 using namespace KIMAP;
0015 
0016 QMap<QByteArray, QPair<qint64, qint64>> QuotaJobBasePrivate::readQuota(const Response::Part &content)
0017 {
0018     QMap<QByteArray, QPair<qint64, qint64>> quotaMap;
0019     QList<QByteArray> quotas = content.toList();
0020 
0021     int i = 0;
0022     while (i < quotas.size() - 2) {
0023         QByteArray resource = quotas[i].toUpper();
0024         qint64 usage = quotas[i + 1].toInt();
0025         qint64 limit = quotas[i + 2].toInt();
0026         quotaMap[resource] = qMakePair(usage, limit);
0027         i += 3;
0028     }
0029 
0030     return quotaMap;
0031 }
0032 
0033 QuotaJobBase::QuotaJobBase(Session *session)
0034     : Job(*new QuotaJobBasePrivate(session, i18n("QuotaJobBase")))
0035 {
0036 }
0037 
0038 QuotaJobBase::QuotaJobBase(JobPrivate &dd)
0039     : Job(dd)
0040 {
0041 }
0042 
0043 QuotaJobBase::~QuotaJobBase()
0044 {
0045 }
0046 
0047 qint64 QuotaJobBase::usage(const QByteArray &resource)
0048 {
0049     Q_D(QuotaJobBase);
0050 
0051     QByteArray r = resource.toUpper();
0052 
0053     if (d->quota.contains(r)) {
0054         return d->quota[r].first;
0055     }
0056     return -1;
0057 }
0058 
0059 qint64 QuotaJobBase::limit(const QByteArray &resource)
0060 {
0061     Q_D(QuotaJobBase);
0062 
0063     QByteArray r = resource.toUpper();
0064 
0065     if (d->quota.contains(r)) {
0066         return d->quota[r].second;
0067     }
0068     return -1;
0069 }
0070 
0071 #include "moc_quotajobbase.cpp"