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"