====== Работа с базой данных сообщений ====== Необходимо разработать: - Визуальный компонент для отображения и подтверждения сообщений ([[doc:vsq:development:visinfopanel|]]) - Поставщик данных [[doc:vsq:development:dpfirebirddb|]] Взаимодействие этих компонентов должно происходить через интерфейс базового класса [[doc:vsq:development:vsqdataprovider|]] ([[doc:vsq:development:dpfirebirddb|]] наследует его). Иерархия классов: [[doc:vsq:index|]] === VisInfoPanel === Класс уже создан. Необходимо доработать функциональность: - Соединение с поставщиком данных - Переодический запрос информации и отображение её (текущее, первое по времени из активных) - Подтвержение реакции ползователя. По клику, отметить сообщение как подтверждённое. === DpFirebirdDB === - Создать класс унаследовав [[doc:vsq:development:vsqdataprovider|]] - В [[doc:vsq:development:vsqdataprovider|]] добавить необходимые фунции взаимодействия с компонентами визуализации. - добавить необходимые свойства для хранения информации о сооединении с базой данных - релиализовать фунциональность работы с базой данных Функции взаимодействия с компонентами визуализации: * void getMessages(DpAlarmMessage *messages, DpAlarmMessage::States flags) - возвращает список сообщений соответствующие маске флагов * bool setMessageState(DpAlarmMessage messages, DpAlarmMessage::State newState) - установливает новое состояние Пример реализации базовой функциональности: RpSvrTcpClient === DpAlarmMessage === Создать класс в заголовочном файле [[doc:vsq:development:vsqdataprovider|]]. Без базового класса. Функции: - Чтение времени сообщения (запись при создании объекта) - Чтение сообщения (QString, запись при создании) - Чтение/запись состояния (перечисление) Дополнение: class VsqRule; class VsqMessageTag : public VsqTag { public: QString name(); VsqRule *rule(); }; class VsqRule { public: bool isCorrect(VsqMessageTag *VsqMessageTag); }; class VsqMessage { public: QDateTime getDT(); QString getString(); };