44 lines
1.1 KiB
C++
44 lines
1.1 KiB
C++
|
|
/*!\file
|
|||
|
|
* \brief \todo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
|
*/
|
|||
|
|
/*
|
|||
|
|
* ProcScheduler.cpp
|
|||
|
|
*
|
|||
|
|
* Created on: 21 <EFBFBD><EFBFBD><EFBFBD> 2019 <EFBFBD>.
|
|||
|
|
* Author: titov
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
#include "ProcScheduler.hh"
|
|||
|
|
|
|||
|
|
bool systemic::ProcScheduler::addProcessor( IProcessor * processor,
|
|||
|
|
ProcessorId processor_id ) {
|
|||
|
|
|
|||
|
|
bool result = false;
|
|||
|
|
|
|||
|
|
if( processor_id < size and not processors[processor_id] )
|
|||
|
|
result = ( processors[processor_id] = processor );
|
|||
|
|
|
|||
|
|
return result;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
systemic::ProcScheduler::ProcScheduler( IProcessor * * providers, std::size_t size ) :
|
|||
|
|
processors(providers), size(size) {}
|
|||
|
|
|
|||
|
|
bool systemic::ProcScheduler::registerProcess( ProcessorId processor_id,
|
|||
|
|
IProcess & proc,
|
|||
|
|
ProcessParameter parameters ) {
|
|||
|
|
|
|||
|
|
bool result = false;
|
|||
|
|
|
|||
|
|
if( processor_id < size and processors[processor_id] ) {
|
|||
|
|
|
|||
|
|
processors[processor_id]->reqisterProcess( parameters.priority, parameters.period, parameters.phase, parameters.controlled, proc );
|
|||
|
|
|
|||
|
|
result = true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return result;
|
|||
|
|
|
|||
|
|
}
|