Doomseeker
   
  • Doomseeker
  • Wadseeker
  • Download
  • Tracker
  • Git
  • Docs
  • Main Page
  • Classes
  • Files
  • File List
  • File Members

src/core/masterserver/mastermanager.h

00001 //------------------------------------------------------------------------------
00002 // mastermanager.h
00003 //------------------------------------------------------------------------------
00004 //
00005 // This program is free software; you can redistribute it and/or
00006 // modify it under the terms of the GNU General Public License
00007 // as published by the Free Software Foundation; either version 2
00008 // of the License, or (at your option) any later version.
00009 //
00010 // This program is distributed in the hope that it will be useful,
00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013 // GNU General Public License for more details.
00014 //
00015 // You should have received a copy of the GNU General Public License
00016 // along with this program; if not, write to the Free Software
00017 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
00018 // 02110-1301, USA.
00019 //
00020 //------------------------------------------------------------------------------
00021 // Copyright (C) 2009 "Blzut3" <admin@maniacsvault.net>
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 
   
Doomseeker © 2009-2024 The Doomseeker Team