00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef __MASTERMANAGER_H__
00024 #define __MASTERMANAGER_H__
00025
00026 #include "masterserver/masterclient.h"
00027 #include "serverapi/message.h"
00028
00029 class CustomServers;
00030 class MasterClientSignalProxy;
00031
00038 class MasterManager : public MasterClient
00039 {
00040 Q_OBJECT
00041
00042 public:
00043 MasterManager();
00044 ~MasterManager();
00045
00046 void addMaster(MasterClient *master);
00047 void clearServersList() { servers.clear(); }
00048 CustomServers* customServs() { return customServers; }
00049
00050 int numMasters() const { return masters.size(); }
00051
00052 const EnginePlugin* plugin() const { return NULL; }
00053
00054 MasterClient* operator[](int index) { return masters[index]; }
00055
00056 bool readMasterResponse(QByteArray &data) { return false; }
00057
00061 bool readMasterResponse(QHostAddress& address, unsigned short port, QByteArray &data);
00062
00063
00064 public slots:
00065 void refresh();
00066
00067 signals:
00072 void listUpdatedForMaster(MasterClient* pSender);
00073 void masterMessage(MasterClient* pSender, const QString& title, const QString& content, bool isError);
00074 void masterMessageImportant(MasterClient* pSender, const Message& objMessage);
00075 void newServerBatchReceivedFromMaster(MasterClient* pSender, const QList<Server* >& servers);
00076
00077 protected:
00078 CustomServers* customServers;
00079 QList<MasterClient *> masters;
00080 QSet<MasterClient *> mastersBeingRefreshed;
00081 QList<MasterClientSignalProxy*> mastersReceivers;
00082
00083 bool getServerListRequest(QByteArray &data) { return false; }
00084 void timeoutRefreshEx();
00085
00086 protected slots:
00087 void masterListUpdated(MasterClient* pSender);
00088
00089 void readMasterMessage(MasterClient* pSender, const QString& title, const QString& content, bool isError)
00090 {
00091 emit masterMessage(pSender, title, content, isError);
00092 }
00093
00095 void newServerBatchReceivedSlot(MasterClient* pSender, const QList<Server* >& servers)
00096 {
00097 emit newServerBatchReceivedFromMaster(pSender, servers);
00098 }
00099 };
00100
00101 #endif
00102