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#ifndef KIMAP_CLOSEJOB_H
21#define KIMAP_CLOSEJOB_H
22
23#include "kimap_export.h"
24
25#include "job.h"
26
27namespace KIMAP {
28
29class Session;
30struct Message;
31class CloseJobPrivate;
32
33/**
34 * Closes the current mailbox.
35 *
36 * This job can only be run when the session is in the selected state.
37 *
38 * Permanently removes all messages that have the \\Deleted
39 * flag set from the currently selected mailbox, and returns
40 * to the authenticated state from the selected state.
41 *
42 * The server will not provide any notifications of which
43 * messages were expunged, so this is quicker than doing
44 * an expunge and then implicitly closing the mailbox
45 * (by selecting or examining another mailbox or logging
46 * out).
47 *
48 * No messages are removed if the mailbox is open in a read-only
49 * state, or if the server supports ACLs and the user does not
50 * have the Acl::Expunge right on the mailbox.
51 */
52class KIMAP_EXPORT CloseJob : public Job
53{
54 Q_OBJECT
55 Q_DECLARE_PRIVATE( CloseJob )
56
57 friend class SessionPrivate;
58
59 public:
60 explicit CloseJob( Session *session );
61 virtual ~CloseJob();
62
63 protected:
64 virtual void doStart();
65};
66
67}
68
69#endif
70