1/*
2 Copyright (c) 2009 Andras Mantia <amantia@kde.org>
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 "getquotajob.h"
21
22#include <KDE/KLocalizedString>
23#include <KDE/KDebug>
24
25#include "quotajobbase_p.h"
26#include "message_p.h"
27#include "session_p.h"
28
29namespace KIMAP
30{
31 class GetQuotaJobPrivate : public QuotaJobBasePrivate
32 {
33 public:
34 GetQuotaJobPrivate( Session *session, const QString& name ) : QuotaJobBasePrivate( session, name ) { }
35 ~GetQuotaJobPrivate() { }
36
37 QByteArray root;
38 };
39}
40
41using namespace KIMAP;
42
43GetQuotaJob::GetQuotaJob( Session *session )
44 : QuotaJobBase( *new GetQuotaJobPrivate( session, i18n( "GetQuota" ) ) )
45{
46}
47
48GetQuotaJob::~GetQuotaJob()
49{
50}
51
52void GetQuotaJob::doStart()
53{
54 Q_D( GetQuotaJob );
55 //XXX: [alexmerry, 2010-07-24]: should d->root be quoted properly?
56 d->tags << d->sessionInternal()->sendCommand( "GETQUOTA", '\"' + d->root + '\"' );
57}
58
59void GetQuotaJob::handleResponse(const Message &response)
60{
61 Q_D( GetQuotaJob );
62 if ( handleErrorReplies( response ) == NotHandled ) {
63 if ( response.content.size() >= 4 &&
64 response.content[1].toString() == "QUOTA" ) {
65 d->quota = d->readQuota( response.content[3] );
66 }
67 }
68}
69
70void GetQuotaJob::setRoot(const QByteArray& root)
71{
72 Q_D( GetQuotaJob );
73 d->root = root;
74}
75
76QByteArray GetQuotaJob::root() const
77{
78 Q_D( const GetQuotaJob );
79 return d->root;
80}
81