| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 | #ifndef APP_H#define APP_H#include <QCoreApplication>#include <QList>#include <QSettings>#include <QHostAddress>#include <QTime>class SshClient;class QTcpSocket;class QTcpServer;class Client;class ServerQueryThread;class App : public QCoreApplication{  //TODO:	friend class Client;	Q_OBJECTpublic:	explicit							App(int &argc, char **argv);												~App();  void									print(const QString& msg);protected:	void									timerEvent(QTimerEvent *e);private:  class ActiveClient  {  public:    ActiveClient(App* app);    ~ActiveClient();    Client*           client();    ServerQueryThread*queryThread();    void              run();    void              setAddress(const QHostAddress &address, quint16 port);  private:    App*              myApp;    Client*           myClient;    ServerQueryThread*myQueryThread;    ActiveClient(const ActiveClient&) {}    QTime             myDisconnectTime;  };  QTcpSocket*           mySocket;  QTcpServer*           myServer;	bool									mySocketConnectedFlag;  SshClient*            myQWNETSshClient;  QList<ActiveClient*>  myClients;	quint32								myCurrentClient;	QSettings							mySettings;	int										myClientsFrameTimerID; //timer for mainloop	void									broadcast(const QString& msg);	void									loadClients();	void									cleanup();	/* TCP Server */	bool									checkPassword(const QString& password);  void									addClient(const QString& host, quint16 port);	void									removeClient(const QString& host, quint16 port);	void									connectToServer(const QString& args);	void									disconnectFromServer(const QString& args);	void									say(const QString& msg);	void									sayTeam(const QString& msg);	void									setTeam(const QString& team);	void									listClients();	void									setColor(const QString& args);	void									setNick(const QString& args);	void									setPing(const QString& args);	void									help();private slots:	/* TCP server */	void									onDataArrival();	void									onNewConnection();	void									onDisconnection();};#endif // APP_H
 |