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
00074 void setTimeout( int timeout );
00075
00080 QString selectedMailBox() const;
00081
00082 int jobQueueSize() const;
00083
00084 void close();
00085
00086 Q_SIGNALS:
00087 void jobQueueSizeChanged( int queueSize );
00088 void connectionLost();
00089
00090 private:
00091 Q_PRIVATE_SLOT( d, void doStartNext() )
00092 Q_PRIVATE_SLOT( d, void jobDone( KJob* ) )
00093 Q_PRIVATE_SLOT( d, void jobDestroyed( QObject* ) )
00094 Q_PRIVATE_SLOT( d, void responseReceived( const KIMAP::Message& ) )
00095
00096 Q_PRIVATE_SLOT( d, void socketConnected() )
00097 Q_PRIVATE_SLOT( d, void socketDisconnected() )
00098 Q_PRIVATE_SLOT( d, void socketError() )
00099
00100 Q_PRIVATE_SLOT( d, void handleSslError( const KSslErrorUiData &errorData ) )
00101
00102 friend class SessionPrivate;
00103 SessionPrivate *const d;
00104 };
00105
00106 }
00107
00108 #endif