// // Created by koncord on 07.01.17. // #ifndef NEWLAUNCHER_NETCONTROLLER_HPP #define NEWLAUNCHER_NETCONTROLLER_HPP #include "ServerModel.hpp" #include "netutils/HTTPNetwork.hpp" #include "netutils/Utils.hpp" struct ServerModel; class NetController { public: static NetController *get(); static void Create(std::string addr, unsigned short port); static void Destroy(); bool updateInfo(QAbstractItemModel *pModel, QModelIndex index= QModelIndex()); void updateInfo(); QStringList players(); QStringList plugins(); void selectServer(ServerData *pServerData); ServerData *selectedServer(); protected: NetController(std::string addr, unsigned short port); ~NetController(); private: NetController(const NetController &controller); bool downloadInfo(QAbstractItemModel *pModel, QModelIndex index); void setData(QString addr, QJsonObject server, ServerModel *model); static NetController *mThis; ServerData *sd; HTTPNetwork httpNetwork; ServerExtendedData sed; }; #endif //NEWLAUNCHER_NETCONTROLLER_HPP