/* * StatusLogger.cpp * * Created on: 31 мар. 2021 г. * Author: titov */ #include "StatusLogger.hh" systemic::StatusManager::Record & systemic::StatusLogger::search(Id id) const { systemic::StatusManager::Record & record = systemic::StatusManager::search(id); if( not record.exist() ) { ErrorMessage message; message.status = id; logger->log_error( reinterpret_cast(&message), sizeof(message) ); } return record; } systemic::StatusLogger::StatusLogger( Record * records, std::size_t size, std::pmr::memory_resource* allocator, NotificationInterface & herald ) : StatusManager( records, size, allocator, herald ) {} bool systemic::StatusLogger::add( Id id, InterfaceType * interface, InterfaceOverrideType * override, const volatile Type * value ) { bool result = systemic::StatusManager::add(id, interface, override, value); if( not result ) { CriticalMessage message; message.status = id; logger->log_critical( reinterpret_cast(&message), sizeof(message) ); } return true; }