KIMAP Library
listjob.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
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 QList<MailBoxDescriptor> mailBoxes() const;
00064 QMap< MailBoxDescriptor, QList<QByteArray> > flags() const;
00065
00066 Q_SIGNALS:
00067 void mailBoxesReceived( const QList<KIMAP::MailBoxDescriptor> &descriptors,
00068 const QList< QList<QByteArray> > &flags );
00069
00070 protected:
00071 virtual void doStart();
00072 virtual void handleResponse(const Message &response);
00073
00074 private:
00075 Q_PRIVATE_SLOT( d_func(), void emitPendings() )
00076 };
00077
00078 }
00079
00080 #endif