46 lines
1.4 KiB
C++
46 lines
1.4 KiB
C++
/*
|
|
* AddProcessor.hpp
|
|
*
|
|
* Created on: 17 èþë. 2019 ã.
|
|
* Author: titov
|
|
*/
|
|
|
|
#ifndef SOURCE_APPLICATION_ADDPROCESSOR_HPP_
|
|
#define SOURCE_APPLICATION_ADDPROCESSOR_HPP_
|
|
|
|
#include "Environment.hh"
|
|
#include "../systemic/Scheduler.hpp"
|
|
|
|
namespace configuration {
|
|
|
|
template<typename Processor>
|
|
void addProcessor( float proc_sampletime, std::size_t proc_size,
|
|
configuration::Environment & env, memories::allocator secure_ma );
|
|
|
|
}
|
|
|
|
template<typename Processor>
|
|
void configuration::addProcessor( float proc_sampletime,
|
|
std::size_t proc_size,
|
|
configuration::Environment & env,
|
|
std::pmr::memory_resource & secure_ma,
|
|
std::pmr::memory_resource & object_ma )
|
|
{
|
|
typedef systemic::SchedulerInterface<Processor> ProcessorInterface;
|
|
ProcessorInterface::setSampleTime(proc_sampletime);
|
|
|
|
systemic::ProcessInfo * table_proc = memories::instance_array<systemic::ProcessInfo>(
|
|
secure_ma, proc_size
|
|
);
|
|
|
|
std::pmr::memory_resource * object_ma_ptr = &object_ma;
|
|
|
|
ProcessorInterface * proc_intf = memories::instance_object<ProcessorInterface>(
|
|
env.static_object_ma, table_proc, proc_size, object_ma_ptr
|
|
);
|
|
|
|
env.scheduler.addProcessor( proc_intf, ProcessorInterface::tag );
|
|
}
|
|
|
|
#endif /* SOURCE_APPLICATION_ADDPROCESSOR_HPP_ */
|