KIMAP2

capabilitiesjob.cpp
1 /*
2  Copyright (c) 2009 Kevin Ottens <[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 "capabilitiesjob.h"
21 
22 #include "job_p.h"
23 #include "message_p.h"
24 #include "session_p.h"
25 
26 namespace KIMAP2
27 {
28 class CapabilitiesJobPrivate : public JobPrivate
29 {
30 public:
31  CapabilitiesJobPrivate(Session *session, const QString &name) : JobPrivate(session, name) { }
32  ~CapabilitiesJobPrivate() { }
33 
34  QStringList capabilities;
35 };
36 }
37 
38 using namespace KIMAP2;
39 
40 CapabilitiesJob::CapabilitiesJob(Session *session)
41  : Job(*new CapabilitiesJobPrivate(session, "Capabilities"))
42 {
43 }
44 
45 CapabilitiesJob::~CapabilitiesJob()
46 {
47 }
48 
50 {
51  Q_D(const CapabilitiesJob);
52  return d->capabilities;
53 }
54 
55 void CapabilitiesJob::doStart()
56 {
57  Q_D(CapabilitiesJob);
58  d->sendCommand("CAPABILITY", {});
59 }
60 
61 void CapabilitiesJob::handleResponse(const Message &response)
62 {
63 
64  Q_D(CapabilitiesJob);
65  if (handleErrorReplies(response) == NotHandled) {
66  if (response.content.size() >= 2 &&
67  response.content[1].toString() == "CAPABILITY") {
68  for (int i = 2; i < response.content.size(); ++i) {
69  d->capabilities << QLatin1String(response.content[i].toString().toUpper());
70  }
71  emit capabilitiesReceived(d->capabilities);
72  }
73  }
74 }
QStringList capabilities() const
The capabilities the server claims to support.
Definition: acl.cpp:25
Checks server capabilities.
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Wed May 27 2020 22:35:08 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.