35 lines
1.0 KiB
C++
35 lines
1.0 KiB
C++
/*
|
||
* ResourceLogger.cpp
|
||
*
|
||
* Created on: 31 мар. 2021 г.
|
||
* Author: titov
|
||
*/
|
||
|
||
#include "ResourceLogger.hh"
|
||
|
||
systemic::ResourceLogger::ResourceLogger( std::size_t max_size,
|
||
std::pmr::memory_resource* record_allocator,
|
||
std::pmr::memory_resource* record_guard_allocator,
|
||
NotificationInterface & herald )
|
||
:
|
||
ResourceHolder( max_size,
|
||
record_allocator,
|
||
record_guard_allocator,
|
||
herald ) {}
|
||
|
||
void* systemic::ResourceLogger::getRecord( const std::type_info & obj_type, Id id, Tag tag ) {
|
||
void* result = ResourceHolder::getRecord(obj_type, id, tag);
|
||
|
||
if(result == nullptr) {
|
||
const ErrorMessage message = {
|
||
.object = id,
|
||
.tag = tag,
|
||
.type = reinterpret_cast<std::size_t>(&obj_type),
|
||
};
|
||
|
||
logger->log_error(reinterpret_cast<const char *>(&message), sizeof(message));
|
||
}
|
||
|
||
return result;
|
||
}
|