idlejob.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_IDLEJOB_H 00021 #define KIMAP_IDLEJOB_H 00022 00023 #include "kimap_export.h" 00024 00025 #include "imapset.h" 00026 #include "job.h" 00027 00028 #include "kmime/kmime_content.h" 00029 #include "kmime/kmime_message.h" 00030 00031 #include <boost/shared_ptr.hpp> 00032 00033 namespace KIMAP { 00034 00035 class Session; 00036 struct Message; 00037 class IdleJobPrivate; 00038 00063 class KIMAP_EXPORT IdleJob : public Job 00064 { 00065 Q_OBJECT 00066 Q_DECLARE_PRIVATE(IdleJob) 00067 00068 public: 00069 explicit IdleJob( Session *session ); 00070 virtual ~IdleJob(); 00071 00077 QString lastMailBox() const; 00089 int lastMessageCount() const; 00102 int lastRecentCount() const; 00103 00104 public Q_SLOTS: 00108 void stop(); 00109 00110 Q_SIGNALS: 00120 void mailBoxStats(KIMAP::IdleJob *job, const QString &mailBox, int messageCount, int recentCount); 00121 00122 protected: 00123 virtual void doStart(); 00124 virtual void handleResponse(const Message &response); 00125 00126 private: 00127 Q_PRIVATE_SLOT( d_func(), void emitStats() ) 00128 }; 00129 00130 } 00131 00132 #endif