KIMAP Library
listjob.h
00001 /* 00002 Copyright (c) 2009 Kevin Ottens <ervin@kde.org> 00003 00004 This library is free software; you can redistribute it and/or modify it 00005 under the terms of the GNU Library General Public License as published by 00006 the Free Software Foundation; either version 2 of the License, or (at your 00007 option) any later version. 00008 00009 This library is distributed in the hope that it will be useful, but WITHOUT 00010 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00011 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public 00012 License for more details. 00013 00014 You should have received a copy of the GNU Library General Public License 00015 along with this library; see the file COPYING.LIB. If not, write to the 00016 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 00017 02110-1301, USA. 00018 */ 00019 00020 #ifndef KIMAP_LISTJOB_H 00021 #define KIMAP_LISTJOB_H 00022 00023 #include "kimap_export.h" 00024 00025 #include "job.h" 00026 00027 namespace KIMAP { 00028 00029 class Session; 00030 struct Message; 00031 class ListJobPrivate; 00032 00033 struct KIMAP_EXPORT MailBoxDescriptor 00034 { 00035 QString name; 00036 QChar separator; 00037 00038 inline bool operator==(const MailBoxDescriptor &other) const 00039 { 00040 return other.name==name && other.separator==separator; 00041 } 00042 00043 inline bool operator<(const MailBoxDescriptor &other) const 00044 { 00045 return other.name<name || (other.name==name && other.separator<separator); 00046 } 00047 }; 00048 00049 class KIMAP_EXPORT ListJob : public Job 00050 { 00051 Q_OBJECT 00052 Q_DECLARE_PRIVATE(ListJob) 00053 00054 friend class SessionPrivate; 00055 00056 public: 00057 explicit ListJob( Session *session ); 00058 virtual ~ListJob(); 00059 00060 void setIncludeUnsubscribed( bool include ); 00061 bool isIncludeUnsubscribed() const; 00062 00063 void setQueriedNamespaces( const QList<MailBoxDescriptor> &namespaces ); 00064 QList<MailBoxDescriptor> queriedNamespaces() const; 00065 00066 KDE_DEPRECATED QList<MailBoxDescriptor> mailBoxes() const; 00067 KDE_DEPRECATED QMap< MailBoxDescriptor, QList<QByteArray> > flags() const; 00068 00069 Q_SIGNALS: 00070 void mailBoxesReceived( const QList<KIMAP::MailBoxDescriptor> &descriptors, 00071 const QList< QList<QByteArray> > &flags ); 00072 00073 protected: 00074 virtual void doStart(); 00075 virtual void handleResponse(const Message &response); 00076 00077 private: 00078 Q_PRIVATE_SLOT( d_func(), void emitPendings() ) 00079 }; 00080 00081 } 00082 00083 #endif