KIMAP2

quotajobbase.cpp
1 /*
2  Copyright (c) 2009 Andras Mantia <[email protected]>
3 
4  This library is free software; you can redistribute it and/or modify it
5  under the terms of the GNU Library General Public License as published by
6  the Free Software Foundation; either version 2 of the License, or (at your
7  option) any later version.
8 
9  This library is distributed in the hope that it will be useful, but WITHOUT
10  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
12  License for more details.
13 
14  You should have received a copy of the GNU Library General Public License
15  along with this library; see the file COPYING.LIB. If not, write to the
16  Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
17  02110-1301, USA.
18 */
19 
20 #include "quotajobbase.h"
21 #include "quotajobbase_p.h"
22 #include "message_p.h"
23 #include "session_p.h"
24 
25 using namespace KIMAP2;
26 
27 QMap<QByteArray, QPair<qint64, qint64> > QuotaJobBasePrivate::readQuota(const Message::Part &content)
28 {
30  QList<QByteArray> quotas = content.toList();
31 
32  int i = 0;
33  while (i < quotas.size() - 2) {
34  QByteArray resource = quotas[i].toUpper();
35  qint64 usage = quotas[i + 1].toInt();
36  qint64 limit = quotas[i + 2].toInt();
37  quotaMap[resource] = qMakePair(usage, limit);
38  i += 3;
39  }
40 
41  return quotaMap;
42 }
43 
44 QuotaJobBase::QuotaJobBase(Session *session)
45  : Job(*new QuotaJobBasePrivate(session, "QuotaJobBase"))
46 {
47 }
48 
49 QuotaJobBase::QuotaJobBase(JobPrivate &dd)
50  : Job(dd)
51 {
52 }
53 
54 QuotaJobBase::~QuotaJobBase()
55 {
56 }
57 
58 qint64 QuotaJobBase::usage(const QByteArray &resource)
59 {
60  Q_D(QuotaJobBase);
61 
62  QByteArray r = resource.toUpper();
63 
64  if (d->quota.contains(r)) {
65  return d->quota[r].first;
66  }
67  return -1;
68 }
69 
70 qint64 QuotaJobBase::limit(const QByteArray &resource)
71 {
72  Q_D(QuotaJobBase);
73 
74  QByteArray r = resource.toUpper();
75 
76  if (d->quota.contains(r)) {
77  return d->quota[r].second;
78  }
79  return -1;
80 }
qint64 limit(const QByteArray &resource)
Get the current limit for a resource.
QByteArray toUpper() const const
int size() const const
Base class for jobs that operate on mailbox quotas.
Definition: quotajobbase.h:43
Definition: acl.cpp:25
qint64 usage(const QByteArray &resource)
Get the current usage for a resource.
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Fri Aug 7 2020 23:05:46 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.