MotorControlModuleSDFM_TMS3.../Projects/EFC_Application/UMLibrary/configuration/Environment.hh

108 lines
3.0 KiB
C++

/*
* Environment.h
*
* Created on: 26 íîÿá. 2018 ã.
* Author: titov
*/
#ifndef SOURCE_SYSTEMIC_ENVIRONMENT_H_
#define SOURCE_SYSTEMIC_ENVIRONMENT_H_
#include "../systemic/SignalManager.hh"
#include "../systemic/StatusManager.hh"
#include "../systemic/CustomParameters.hpp"
#include "../systemic/ResourceHolder.hpp"
#include "../systemic/ProcScheduler.hh"
#include "../systemic/SystemException.hh"
#include "ProcessConfig.hh"
#include "../memories/memories.hh"
namespace configuration {
struct Environment {
typedef uint16_t Id;
typedef Id StatusId;
typedef Id SignalId;
typedef Id SettingId;
typedef Id TechFunctionId;
typedef Id GpioId;
systemic::SignalManager & signals;
systemic::StatusManager & statuses;
systemic::CustomParameters & cparams;
systemic::ResourceHolder & rholder;
systemic::ProcScheduler & scheduler;
systemic::ExceptionInfo & exception;
/**
* @brief Ìîäåëü ïàìÿòè ñèñòåìû
*
* Àëëîêàòîð (Allocator)
* Ðàñïðåäèëèòåëü ïàìÿòè, èñïîëüçóåòñÿ äëÿ îäíîêðàòíîãî âûäåëåíèÿ îáëàñòè ïàìÿòè.
*  ðàìêàõ âûäåëåííîé îáëàñòè ðàçâ¸ðòûâàåòñÿ ïëàòôîðìî-íåçàâèñèìîå runtime îêðóæåíèå áèáëèîòåêè
*
* Ðåãèîí ïàìÿòè (Memory Region)
* Ïàìÿòü ïîäåëåíà íà òðè ðåãèîíà:
* - Ïàìÿòü îáúåêòîâ
* - Ïàìÿòü äàííûõ
* - Ïàìÿòü ñòðóêòóð îïèñàíèÿ, èñïîëüçóåìûõ âî âðåìÿ ñáîðêè ïðèëîæåíèÿ
*
* Ðåãèîíû ïàìÿòè ìîãóò ðàñïîëàãàòüñÿ â îäíîé ôèçè÷åñêîé ïàìÿòè.
*/
/**
* @brief Àëëîêàòîð ñòàòè÷åñêîé ïàìÿòè îáúåêòîâ
*
* Íà䏿íàÿ, áûñòðàÿ ïàìÿòü îáúåêòîâ íàõîäèòñÿ áëèæå ê ïðîöåññîðó.
*/
std::pmr::memory_resource & static_object_ma;
/**
* @brief Àëëîêàòîð ñòàòè÷åñêîé ïàìÿòè äàííûõ.
*
* Ìåäëåííàÿ ïàìÿòü äàííûõ áîëüøîãî îáú¸ìà.
*/
std::pmr::memory_resource & static_data_ma;
/**
* @brief Àëëîêàòîð ñòàòè÷åñêîé ïàìÿòè ñòðóêòóð îïèñàíèÿ.
*
* Ïàìÿòü ñòðóêòóð îïèñàíèÿ äîñòóïíà íà èçìåíåíèå òîëüêî èç ìåòîäîâ øàãîâ èíèöèàëèçàöèè.
* Ïàìÿòü ìîæíî èñïîëüçîâàòü íà çàïèñü òîëüêî äî çàâåðøåíèÿ èíèöèàëèçàöèè, ÷èòàòü ìîæíî âñåãäà.
*/
std::pmr::memory_resource & static_setup_ma;
std::pair<const char *, std::size_t> (* platform_info)( std::size_t info_id );
Environment(
systemic::SignalManager & sgm,
systemic::StatusManager & stm,
systemic::CustomParameters & cps,
systemic::ResourceHolder & rch,
systemic::ProcScheduler & sch,
systemic::ExceptionInfo & exp,
std::pmr::memory_resource & object_mr,
std::pmr::memory_resource & data_mr,
std::pmr::memory_resource & setup_mr
)
: signals(sgm), statuses(stm), cparams(cps), rholder(rch), scheduler(sch),
static_object_ma(object_mr),
static_data_ma(data_mr),
static_setup_ma(setup_mr),
exception(exp),
platform_info(nullptr) { }
};
}
#endif /* SOURCE_SYSTEMIC_ENVIRONMENT_H_ */