KIMAP Library
quotajobbase.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "quotajobbase.h"
00021
00022 #include <KDE/KLocale>
00023 #include <KDE/KDebug>
00024
00025 #include "quotajobbase_p.h"
00026 #include "message_p.h"
00027 #include "session_p.h"
00028
00029 using namespace KIMAP;
00030
00031 QMap<QByteArray, QPair<qint64, qint64> > QuotaJobBasePrivate::readQuota( const Message::Part &content )
00032 {
00033 QMap<QByteArray, QPair<qint64, qint64> > quota;
00034 QList<QByteArray> quotas = content.toList();
00035
00036 int i = 0;
00037 while ( i < quotas.size() - 2 ) {
00038 QByteArray resource = quotas[i].toUpper();
00039 qint64 usage = quotas[i+1].toInt();
00040 qint64 limit = quotas[i+2].toInt();
00041 quota[resource] = qMakePair(usage, limit);
00042 i += 3;
00043 }
00044
00045 return quota;
00046 }
00047
00048 QuotaJobBase::QuotaJobBase( Session *session )
00049 : Job( *new QuotaJobBasePrivate(session, i18n("QuotaJobBase")) )
00050 {
00051 }
00052
00053
00054 QuotaJobBase::QuotaJobBase( JobPrivate &dd )
00055 : Job(dd)
00056 {
00057
00058 }
00059
00060 QuotaJobBase::~QuotaJobBase()
00061 {
00062 }
00063
00064
00065 qint64 QuotaJobBase::usage(const QByteArray& resource)
00066 {
00067 Q_D(QuotaJobBase);
00068
00069 QByteArray r = resource.toUpper();
00070
00071 if (d->quota.contains(r)) {
00072 return d->quota[r].first;
00073 }
00074
00075 return -1;
00076 }
00077
00078 qint64 QuotaJobBase::limit(const QByteArray& resource)
00079 {
00080 Q_D(QuotaJobBase);
00081
00082 QByteArray r = resource.toUpper();
00083
00084 if (d->quota.contains(r)) {
00085 return d->quota[r].second;
00086 }
00087
00088 return -1;
00089 }
00090
00091
00092
00093 #include "quotajobbase.moc"