/***************************************************************************
- * Copyright (C) 2005-08 by the Quassel Project *
+ * Copyright (C) 2005-09 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
#include "coresession.h"
+class QTimerEvent;
+
class CoreIrcListHelper : public IrcListHelper {
+ SYNCABLE_OBJECT
Q_OBJECT
public:
inline CoreSession *coreSession() const { return _coreSession; }
+ inline bool requestInProgress(const NetworkId &netId) const { return _channelLists.contains(netId); }
+
public slots:
virtual QVariantList requestChannelList(const NetworkId &netId, const QStringList &channelFilters);
bool addChannel(const NetworkId &netId, const QString &channelName, quint32 userCount, const QString &topic);
bool endOfChannelList(const NetworkId &netId);
+protected:
+ void timerEvent(QTimerEvent *event);
+
+private:
+ bool dispatchQuery(const NetworkId &netId, const QString &query);
+
private:
CoreSession *_coreSession;
QHash<NetworkId, QString> _queuedQuery;
QHash<NetworkId, QList<ChannelDescription> > _channelLists;
QHash<NetworkId, QVariantList> _finishedChannelLists;
+ QHash<int, NetworkId> _queryTimeout;
};
#endif //COREIRCLISTHELPER_H