#ifndef SERVERLMSWIDGET_H #define SERVERLMSWIDGET_H #include "ServerLMS_global.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "multithreadserver.h" #include "providerdblms.h" namespace Ui { class ServerLMSWidget; } class DataParser; class SendSystem; class ProcessingSystem; class Logger; class UpdateController; class RecognizeSystem; class ClientHandler; class MultiThreadServer; class AssetsManager; class SERVERLMS_EXPORT ServerLMSWidget : public QWidget { Q_OBJECT public: explicit ServerLMSWidget(QWidget *parent = nullptr); ~ServerLMSWidget(); void setError(int code); protected: // Метод получения событий // В нём будет производиться проверка события смены перевода приложения void changeEvent(QEvent * event) override; signals: void sigRecognize(); void sigLog(QString log); void sigCalculateFullHash(); void sigUpdateController(CommonClientHandler* commonClientHandler,DataParser *dataParser,AssetsManager *assetManager,Logger *logger); QTcpSocket* sigGetSocket(); public slots: void slot_LanguageChanged(QString language); void addClient(qintptr descriptor, ClientHandler *client); void slotUpdateListClients(); void slot_BlockAutorization(bool block); void slotAddToLog(QString msg); public: void removeClient(int socketId); void blockAutorization() { stateBlockAutorization = blocked; } void unBlockAutorization() { stateBlockAutorization = unblocked; } int hasError() const { return errorCode; } EStateBlockAutorization getStateBlockAutorization() const { return stateBlockAutorization; } ProcessingSystem* getProcessingSystem() { return processingSystem; } QMap getClientsMap() const; Logger *getLogger() const; private slots: void on_btnStartServer_clicked(); void on_btnStopServer_clicked(); private: bool startServer(); bool stopServer(); private: Ui::ServerLMSWidget *ui; private: MultiThreadServer * tcpServer; qint16 hostPort; QMap clientsMap; EStateServer stateServer; EStateBlockAutorization stateBlockAutorization; QThread *updateThread; QThread *loggerThread; DataParser *dataParser; ProcessingSystem *processingSystem; UpdateController *updateController; AssetsManager *assetsManager; Logger *logger; CommonClientHandler *commonClientHandler; ProviderDBLMS* providerDBLMS; bool first = true; // для тестов Unity QTranslator qtLanguageTranslator; int errorCode; }; #endif // SERVERLMSWIDGET_H