/* * SignalLogger.hh * * Created on: 31 мар. 2021 г. * Author: titov */ #ifndef UMLIBRARY_SYSTEMIC_SIGNALLOGGER_HH_ #define UMLIBRARY_SYSTEMIC_SIGNALLOGGER_HH_ #include "SignalManager.hh" #include "../logging/ILoggable.hh" namespace systemic { //!Логирует ошибки доступа к ресурсам - сигналам. class SignalLogger : public SignalManager, public logging::ILoggable { virtual Record & search( Id id ) const; //!Ошибка доступа. struct ErrorMessage { Id signal; //!<Идентификатор запроса. }; //!Ошибка размещения. struct CriticalMessage { Id signal; //!<Идентификатор запроса. }; public: SignalLogger( Record * recods, std::size_t size, std::pmr::memory_resource*, NotificationInterface & herald = getDefault() ); virtual bool add( Id id, InterfaceType * interface, InterfaceOverrideType * override = nullptr, volatile const Type * value = nullptr ) override; }; } #endif /* UMLIBRARY_SYSTEMIC_SIGNALLOGGER_HH_ */