/* GNU General Public License version 3 notice Copyright (C) 2012 Mihawk . All rights reserved. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see < http://www.gnu.org/licenses/ >. */ #ifndef ACTIVECLIENT_H #define ACTIVECLIENT_H #include class QHostAddress; class ServerQueryThread; class QTimer; class QTime; class Client; class App; class ActiveClient { public: ActiveClient(App* app); ~ActiveClient(); Client* client(); ServerQueryThread*queryThread(); void run(); void setAddressAndStartThread(const QHostAddress &address, quint16 port); const QString serverAddressString(); void setReplyHash(const QString& hash); //this activates the 5 seconds reply timer too const QString& replyHash() const; void incrementReplyCounters(int userCount, int channelCount, int playerCount, int serverCount); bool isWaitingReply() const; private: App* myApp; Client* myClient; ServerQueryThread*myQueryThread; QTime* myDisconnectTime; /* Count server reply while timer is active */ QString myReplyHash; QTimer* myBroadcastReplyTimer; int myUniqueUserCount; int myUniqueChannelCount; int myUniqueServerCount; int myUniquePlayerCount; bool myReplyTimerWasActive; ActiveClient(const ActiveClient&) {} }; #endif // ACTIVECLIENT_H