36 lines
1.0 KiB
C++
36 lines
1.0 KiB
C++
/*
|
|
* MonotonicBufferResource.cpp
|
|
*
|
|
* Created on: 15 èþí. 2020 ã.
|
|
* Author: LeonidTitov
|
|
*/
|
|
|
|
#include "MonotonicBufferResource.hh"
|
|
#include <memory_resource>
|
|
|
|
bool application::basic::MonotonicBufferResource::input( Environment & env ) {
|
|
|
|
return grab( upstream_resource, env.rholder.getShared<std::pmr::memory_resource>( links.upstream ) );
|
|
|
|
}
|
|
|
|
void application::basic::MonotonicBufferResource::build( Environment & env ) {
|
|
|
|
if(links.monotonic) {
|
|
std::size_t buffer_size = setting.buffer_size;
|
|
|
|
void * buffer = upstream_resource->allocate( buffer_size, 4 );
|
|
|
|
std::pmr::monotonic_buffer_resource * monotonic = memories::instance_object<std::pmr::monotonic_buffer_resource>(env.static_object_ma, buffer, buffer_size, upstream_resource );
|
|
|
|
env.rholder.share<std::pmr::monotonic_buffer_resource>( *monotonic, links.monotonic );
|
|
}
|
|
|
|
|
|
}
|
|
|
|
application::basic::MonotonicBufferResource::MonotonicBufferResource(
|
|
const Links &links, const Setting &setting) : links(links), setting(setting)
|
|
{
|
|
}
|