00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef KIMAP_SESSION_H
00021 #define KIMAP_SESSION_H
00022
00023 #include "kimap_export.h"
00024
00025 #include <QtCore/QObject>
00026
00027 #include "sessionuiproxy.h"
00028
00029 class KSslErrorUiData;
00030
00031 namespace KIMAP {
00032
00033 class SessionPrivate;
00034 class JobPrivate;
00035 struct Message;
00036
00037 class KIMAP_EXPORT Session : public QObject
00038 {
00039 Q_OBJECT
00040 Q_ENUMS(State)
00041
00042 friend class JobPrivate;
00043
00044 public:
00045 enum State { Disconnected = 0, NotAuthenticated, Authenticated, Selected };
00046
00047 Session( const QString &hostName, quint16 port, QObject *parent=0 );
00048 ~Session();
00049
00050 QString hostName() const;
00051 quint16 port() const;
00052 State state() const;
00053
00054 QByteArray serverGreeting() const;
00055
00060 void setUiProxy(SessionUiProxy::Ptr proxy);
00061
00067 KDE_DEPRECATED void setUiProxy(SessionUiProxy *proxy);
00068
00073 QString selectedMailBox() const;
00074
00075 int jobQueueSize() const;
00076
00077 Q_SIGNALS:
00078 void jobQueueSizeChanged( int queueSize );
00079 void connectionLost();
00080
00081 private:
00082 Q_PRIVATE_SLOT( d, void doStartNext() )
00083 Q_PRIVATE_SLOT( d, void jobDone( KJob* ) )
00084 Q_PRIVATE_SLOT( d, void jobDestroyed( QObject* ) )
00085 Q_PRIVATE_SLOT( d, void responseReceived( const KIMAP::Message& ) )
00086
00087 Q_PRIVATE_SLOT( d, void socketConnected() )
00088 Q_PRIVATE_SLOT( d, void socketDisconnected() )
00089 Q_PRIVATE_SLOT( d, void socketError() )
00090
00091 Q_PRIVATE_SLOT( d, void handleSslError( const KSslErrorUiData &errorData ) )
00092
00093 friend class SessionPrivate;
00094 SessionPrivate *const d;
00095 };
00096
00097 }
00098
00099 #endif