session.h
00001 /* 00002 Copyright (c) 2007 Volker Krause <vkrause@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 AKONADI_SESSION_H 00021 #define AKONADI_SESSION_H 00022 00023 #include "akonadi_export.h" 00024 #include <QtCore/QObject> 00025 00026 class KJob; 00027 00028 namespace Akonadi { 00029 00030 class Job; 00031 class SessionPrivate; 00032 00058 class AKONADI_EXPORT Session : public QObject 00059 { 00060 Q_OBJECT 00061 00062 friend class Job; 00063 friend class JobPrivate; 00064 friend class SessionPrivate; 00065 00066 public: 00076 explicit Session( const QByteArray &sessionId = QByteArray(), QObject *parent = 0 ); 00077 00081 ~Session(); 00082 00086 QByteArray sessionId() const; 00087 00091 static Session* defaultSession(); 00092 00096 void clear(); 00097 00098 Q_SIGNALS: 00105 void reconnected(); 00106 00107 protected: 00118 explicit Session( SessionPrivate *d, const QByteArray &sessionId = QByteArray(), QObject *parent = 0 ); 00119 00120 private: 00121 //@cond PRIVATE 00122 SessionPrivate* const d; 00123 00124 Q_PRIVATE_SLOT( d, void reconnect() ) 00125 Q_PRIVATE_SLOT( d, void socketError( QLocalSocket::LocalSocketError ) ) 00126 Q_PRIVATE_SLOT( d, void socketError( QAbstractSocket::SocketError ) ) 00127 Q_PRIVATE_SLOT( d, void socketDisconnected() ) 00128 Q_PRIVATE_SLOT( d, void dataReceived() ) 00129 Q_PRIVATE_SLOT( d, void doStartNext() ) 00130 Q_PRIVATE_SLOT( d, void jobDone( KJob* ) ) 00131 Q_PRIVATE_SLOT( d, void jobWriteFinished( Akonadi::Job* ) ) 00132 Q_PRIVATE_SLOT( d, void jobDestroyed( QObject* ) ) 00133 Q_PRIVATE_SLOT( d, void serverStateChanged( Akonadi::ServerManager::State ) ) 00134 //@endcond PRIVATE 00135 }; 00136 00137 } 00138 00139 00140 #endif