KIMAP Library
session_p.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef KIMAP_SESSION_P_H
00021 #define KIMAP_SESSION_P_H
00022
00023 #include "session.h"
00024
00025 #include <ktcpsocket.h>
00026
00027 #include <QtCore/QObject>
00028 #include <QtCore/QQueue>
00029 #include <QtCore/QString>
00030
00031 class KJob;
00032
00033 namespace KIMAP {
00034
00035 class Job;
00036 struct Message;
00037 class SessionThread;
00038 class SessionUiProxy;
00039
00040 class SessionPrivate : public QObject
00041 {
00042 Q_OBJECT
00043
00044 friend class Session;
00045
00046 public:
00047 SessionPrivate( Session *session );
00048
00049 void addJob(Job *job);
00050 QByteArray sendCommand( const QByteArray &command, const QByteArray &args = QByteArray() );
00051 void startSsl(const KTcpSocket::SslVersion &version);
00052 void sendData( const QByteArray &data );
00053
00054 QString selectedMailBox() const;
00055
00056 void handleSslError( const KSslErrorUiData &errorData );
00057
00058 Q_SIGNALS:
00059 void encryptionNegotiationResult(bool);
00060
00061 private:
00062 void reconnect();
00063
00064 void startNext();
00065 void doStartNext();
00066 void jobDone( KJob *job );
00067 void jobDestroyed( QObject *job );
00068 void responseReceived( const KIMAP::Message &response );
00069
00070 void socketConnected();
00071 void socketDisconnected();
00072 void socketError();
00073
00074 Session *const q;
00075
00076 bool isSocketConnected;
00077 Session::State state;
00078
00079 SessionThread *thread;
00080 SessionUiProxy *uiProxy;
00081
00082 bool jobRunning;
00083 Job *currentJob;
00084 QQueue<Job*> queue;
00085
00086 QByteArray authTag;
00087 QByteArray selectTag;
00088 QByteArray closeTag;
00089
00090 QByteArray greeting;
00091 QByteArray currentMailBox;
00092 QByteArray upcomingMailBox;
00093 quint16 tagCount;
00094 };
00095
00096 }
00097
00098 #endif