#ifndef CONNECTORTOSERVER_H #define CONNECTORTOSERVER_H #include #include #include #include "Core\tcpclient.h" #include "Core\dataparser.h" #include "Core\sendsystem.h" #include "Core\recognizesystem.h" #include "instructor.h" #include "trainee.h" #include "group.h" #include "computer.h" #include "classroom.h" #include "streamingversiondata.h" #include "Datas.h" class ConnectorToServer : public QObject { Q_OBJECT public: explicit ConnectorToServer(QWidget* parentWidget, QObject *parent = nullptr); ~ConnectorToServer(); bool authorizationInstructorLocal(QString login, QString password); bool deAuthorizationInstructorLocal(QString login); bool sendQueryToDB(TypeQueryToDB typeQuery, int id = 0, void* data = nullptr); bool sendMessage(QString fromId, QString toId, QString text); bool sendQueryTasksXML(QString type); void SetConnectToServer(); void StopConnectToServer(); public: QByteArray getListTaskFimArray(); QByteArray getListTaskAmmArray(); public: //Запросы к БД (локальной) QList getListInstructors(); QList getListTrainees(); QList getListGroups(); QList getListComputers(); QList getListClassrooms(); QList getListTasksAMMforTrainee(int trainee_id); QList getListTasksFIMforTrainee(int trainee_id); bool isArchivedInstructor(int id); bool isAdminInstructor(int id); bool isLoggedInInstructor(int id); Instructor getInstructor(int id); QList getListTraineesInGroup(int id); bool isArchivedTrainee(int id); bool isLoggedInTrainee(int id); Trainee getTrainee(int id); Group getGroup(int id); int getIdTraineeByLogin(QString login); void showVersionSelect(); void setLoginName(QString name); ServerSettings getServerSettings(); bool getIsConnected(); public slots: void slot_AnswerQueryToDB_ListInstructors(QList listInstructors); void slot_AnswerQueryToDB_ListGroups(QList listGroups); void slot_AnswerQueryToDB_ListTrainees(QList listTrainees); void slot_AnswerQueryToDB_ListComputers(QList listComputers); void slot_AnswerQueryToDB_ListClassrooms(QList listClassrooms); void slot_AnswerQueryToDB_ListTasksAMMforTrainee(QList listTasks, int trainee_id); void slot_AnswerQueryToDB_ListTasksFIMforTrainee(QList listTasks, int trainee_id); void slot_AnswerQueryTasksXML_FIM(QByteArray array); void slot_AnswerQueryTasksXML_AMM(QByteArray array); void slot_sendMessage(QString fromId, QString toId, QString text); void showServerList(QList *serverList); void slot_HashReady(); signals: void sigSetConnect(ServerSettings* serverSettings,QThread *thread); void sigStopConnect(); void sigInitializeClient(RecognizeSystem *recognizeSystem, SendSystem *sendSystem, QThread *thread); void signal_sendXMLmsgGUItoServer(QByteArray array); void sigLoginResult(ServerAuthorization * serverAuth); void sigDeLoginResult(ServerDeAuthorization * serverDeAuth); void signal_UpdateDB(bool treeInstructor, bool treeTrainee); void signal_UpdateTasksFIM(); //Общий список void signal_UpdateTasksAMM(); //Общий список void signal_UpdateTasksFIMforTrainee(int trainee_id); void signal_UpdateTasksAMMforTrainee(int trainee_id); void signal_ConnectedToServer(bool state); void signal_InitMessanger(QList listTrainees); void signal_receiveMessage(QString fromId, QString toId, QString text); void sigSendAnswerToServer(QByteArray array); private: void initialize(); void bindConnection(); void createObjects(); //Очистка списочной модели БД СУО void clearListModelDB(); private: QWidget* parentWidget; QThread *connectionThread; TCPClient *client; DataParser *dataParser; SendSystem *sendSystem; RecognizeSystem *recognizeSystem; VersionSelectWidget *versionSelectWidget; VersionContainer *versionContainer; NotifyController *notifyController; //Списочная модель БД СУО QList listInstructors; QList listGroups; QList listTrainees; QList listComputers; QList listClassrooms; QMap> mapTasksAMM; QMap> mapTasksFIM; QByteArray listTaskFimArray; QByteArray listTaskAmmArray; ServerSettings serverSettings; }; #endif // CONNECTORTOSERVER_H