/***************************************************************************
- * Copyright (C) 2005-08 by the Quassel IRC Team *
+ * Copyright (C) 2005-2014 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
-#ifndef _SESSIONTHREAD_H_
-#define _SESSIONTHREAD_H_
+#ifndef SESSIONTHREAD_H
+#define SESSIONTHREAD_H
#include <QMutex>
#include <QThread>
#include "types.h"
class CoreSession;
+class InternalPeer;
+class RemotePeer;
class QIODevice;
-class SessionThread : public QThread {
- Q_OBJECT
+class SessionThread : public QThread
+{
+ Q_OBJECT
- public:
- SessionThread(UserId user, QObject *parent = 0);
+public:
+ SessionThread(UserId user, bool restoreState, QObject *parent = 0);
~SessionThread();
void run();
CoreSession *session();
UserId user();
- public slots:
- void addClient(QIODevice *socket);
+public slots:
+ void addClient(QObject *peer);
- private slots:
+private slots:
void setSessionInitialized();
- signals:
+signals:
void initialized();
+ void shutdown();
- private:
+ void addRemoteClient(RemotePeer *peer);
+ void addInternalClient(InternalPeer *peer);
+
+private:
CoreSession *_session;
UserId _user;
- QList<QIODevice *> clientQueue;
+ QList<QObject *> clientQueue;
bool _sessionInitialized;
+ bool _restoreState;
bool isSessionInitialized();
- void addClientToSession(QIODevice *socket);
+ void addClientToSession(QObject *peer);
+ void addRemoteClientToSession(RemotePeer *remotePeer);
+ void addInternalClientToSession(InternalPeer *internalPeer);
};
+
#endif