X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fcoreirclisthelper.h;h=688344a1a6e331bc34b1e6f333a7281b208e7a26;hp=84303ad61e36fd27e99c0233a2ad40bf4dab0a7a;hb=5cab348de53cb3b994273c06fe69e1f799d247b4;hpb=fe4b38e66592f11fdf4c4651863968983daecd2d diff --git a/src/core/coreirclisthelper.h b/src/core/coreirclisthelper.h index 84303ad6..688344a1 100644 --- a/src/core/coreirclisthelper.h +++ b/src/core/coreirclisthelper.h @@ -1,5 +1,5 @@ /*************************************************************************** - * 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 * @@ -25,7 +25,10 @@ #include "coresession.h" +class QTimerEvent; + class CoreIrcListHelper : public IrcListHelper { + SYNCABLE_OBJECT Q_OBJECT public: @@ -35,17 +38,26 @@ 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 _queuedQuery; QHash > _channelLists; QHash _finishedChannelLists; + QHash _queryTimeout; }; #endif //COREIRCLISTHELPER_H