MotorControlModuleSDFM_TMS3.../Projects/EFC_Application/UMLibrary/systemic/ResourceHolder.cpp

34 lines
1.1 KiB
C++

/*
* ResourceHolder.cpp
*
* Created on: 22 íîÿá. 2018 ã.
* Author: titov
*/
#include "ResourceHolder.hpp"
systemic::ResourceHolder::ResourceHolder( std::size_t max_size,
std::pmr::memory_resource* record_allocator,
std::pmr::memory_resource* record_guard_allocator,
NotificationInterface & herald )
: size_limit(max_size),
record_allocator(record_allocator),
record_guard_allocator(record_guard_allocator ? record_guard_allocator : record_allocator),
records( std::less< ResourceRecord::Info >(),
std::pmr::polymorphic_allocator< ResourceRecord::Data >(record_allocator) ),
herald(herald) {}
void * systemic::ResourceHolder::getRecord( const std::type_info & obj_type, Id id, Tag tag ) {
ResourceRecord::Info record_info(&obj_type, id, tag);
ResourceRecordMap::iterator iter = records.find(record_info);
if( iter != records.end() )
return iter->second;
else
return nullptr;
}