#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 "Datas.h" #include "notifycontroller.h" #include "streamingversiondata.h" class ConnectorToServer : public QObject { Q_OBJECT public: explicit ConnectorToServer(QWidget* parentWidget, QObject *parent = nullptr); ~ConnectorToServer(); public: ServerSettings getServerSettings(); bool getIsConnected(); SendSystem *getSendSystem() const; ServerAuthorization getServerAuth(){return serverAuth;} void SetConnectToServer(); void StopConnectToServer(); void setLoginName(QString name); QString getLoginName(); public: //Send bool sendAuthorizationInstructorLocal(QString login, QString password); bool sendDeAuthorizationInstructorLocal(QString login); bool sendQueryToDB(TypeQueryToDB typeQuery, int id = 0, void* data = nullptr); bool sendMessage(ClientMessage clientMessage); bool sendQueryTasksXML(QString type); bool sendQueryListSubProc(QString dmCode); bool sendQueryBlockAuth(bool block); void sendShowVersionSelect(); bool sendClientNotify(QString command); public: //LocalModelDB QByteArray getListTaskFimArray(); QByteArray getListTaskAmmArray(); QList getListInstructors(); QList getListTrainees(); QList getListGroups(); QList getListComputers(); QList getListClassrooms(); QList getListTasksAMMforTrainee(int trainee_id); QList getListTasksFIMforTrainee(int trainee_id); QList getListSubProcForDMCode(QString dmCode); int getCountTasksAMMforTrainee(int trainee_id); int getCountTasksFIMforTrainee(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); int getIdInstructorByLogin(QString login); private: //Очистка списочной модели БД СУО void clearListModelDB(); public slots: //AnswerQueryToDB 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_AnswerQuerySubProc(QList listSubProc, QString parentTask_dmCode); void slot_AnswerDocsChanged(); public slots: void slot_sendMessage(ClientMessage clientMessage); void slot_showServerList(QList *serverList); void slot_HashReady(); void slot_Auth(ServerAuthorization * serverAuth); void slot_ServerBlocked(); void slot_ErrorAuth(QString error); void slot_SendDeleteVersion(StreamingVersionData *streaming); void slot_SendSwitchVersion(StreamingVersionData *selectVersion); void slot_SendCopyVersion(QString versionPair); void slot_getVersion(); void slot_NotifyVersionControl(QString text); signals: void sigSetConnect(ServerSettings* serverSettings,QThread *thread); void sigStopConnect(); void sigInitializeClient(RecognizeSystem *recognizeSystem, SendSystem *sendSystem, QThread *thread); void sigLoginResult(ServerAuthorization * serverAuth); void sigDeLoginResult(ServerDeAuthorization * serverDeAuth); void sigServerBlocked(); void sigErrorAuth(QString error); 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_UpdateSubProcForDMCode(QString dmCode); void signal_ConnectedToServer(bool state); void signal_reInitMessangerByUsers(QList listUsers); void signal_receiveMessage(ClientMessage clientMessage); void sigSendAnswerToServer(QByteArray array); void signal_AnswerDocsChanged(); void signal_SetVersion(StreamingVersionData* serverVersion); void signal_AnimationActivated(bool flag); void signal_SendDeleteVersion(StreamingVersionData *streaming); void signal_SendSwitchVersion(StreamingVersionData *selectVersion); void signal_SendCopyVersion(QString versionPair); void signal_showServerList(QList *serverList); void signal_SendGetVersion(); void signal_NotifyVersionControl(QString text); private: void initialize(); void bindConnection(); void createObjects(); private: QWidget* parentWidget; QThread *connectionThread; TCPClient *client; DataParser *dataParser; SendSystem *sendSystem; RecognizeSystem *recognizeSystem; //Списочная модель БД СУО QMutex mtxAccess; QList listInstructors; QList listGroups; QList listTrainees; QList listComputers; QList listClassrooms; QMap> mapTasksAMM; QMap> mapTasksFIM; QByteArray listTaskFimArray; QByteArray listTaskAmmArray; QMap> mapSubProc; ServerSettings serverSettings; ServerAuthorization serverAuth; bool fl_GetedOfflineMessages; QString nameInstructorLoggedInLocal; }; #endif // CONNECTORTOSERVER_H