/*!\file * \brief \todo Описание файла. */ /* * ProcScheduler.h * * Created on: 21 мая 2019 г. * Author: titov */ #ifndef SOURCE_SYSTEMIC_PROCSCHEDULER_H_ #define SOURCE_SYSTEMIC_PROCSCHEDULER_H_ #include "IProcessor.hh" #include #include namespace systemic { class ProcScheduler { private: IProcessor * * const processors; const std::size_t size; public: typedef unsigned short ProcessorId; typedef unsigned short Id; struct ProcessParameter { uint16_t priority; uint16_t period; uint16_t phase; uint16_t controlled:1; uint16_t reserved:15; // ProcessParameter() : priority(0), period(1), phase(0), controlled(false), reserved() {} }; bool registerProcess( ProcessorId processor_id, IProcess & proc, ProcessParameter parameters ); bool addProcessor( IProcessor * processor, ProcessorId processor_id ); ProcScheduler( IProcessor * * providers, std::size_t size ); }; template struct ProcSchedulerBox { IProcessor * records[num]; ProcScheduler manager; ProcSchedulerBox( ) : records(), manager( records, num ) {} }; } #endif /* SOURCE_SYSTEMIC_PROCSCHEDULER_H_ */