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