MotorControlModuleSDFM_TMS3.../Projects/EFC_Communication/UMLibrary/systemic/IParameterProvider.hh

56 lines
2.4 KiB
C++
Raw Permalink Normal View History

2024-06-07 11:12:56 +03:00
/*
* IParameterProvider.h
*
* Created on: 19 нояб. 2018 г.
* Author: titov
*/
#ifndef SOURCE_SYSTEMIC_IPARAMETERPROVIDER_H_
#define SOURCE_SYSTEMIC_IPARAMETERPROVIDER_H_
#include <cstddef>
#include <utility>
#include "SharedData.hh"
namespace systemic {
//!Интерфейс поставщика настраиваемых данных.
struct IParameterProvider {
//!Тип идентификатора.
typedef unsigned int Id;
//!Получить буфер настраиваемых данных.
/*!Буфер настраиваемых данных содержит запрошенную настройку и доступен для чтения и модификации.
* \param[in] parameter_id Идентификатор буфера.
* \return Указатель на буфер в случае если запрошенная настройка есть, иначе nullptr и его размер.
*/
virtual SharedData getParameterBuff( Id parameter_id ) const = 0;
/*! \brief Получение указателя на запись настройки
* \param id Идентификатор настройки.
* Если размер принимаемой структуры больше чем имеющейся, либо настройки с указаным идентификатором не существует,
* то под принимаемую настройку выделяется память.
* \return Указатель по которому ожидается прием настройки размером size, либо nullptr, если не удалось выделить память.
*/
virtual SharedData createParameterBuff( Id parameter_id, std::size_t size ) = 0;
//!Сохранить значение параметра.
/*!Сохранить данные буфера с устройстве.
* \param[in] parameter_id Идентификатор буфера.
* \return Статус выполнения запроса.
*/
virtual bool flushParameterBuff( Id parameter_id ) = 0;
//Здесь могла бы быть функция проверкии соотвествия значения параметра значению сохраненному.
virtual ~IParameterProvider() = default;
};
}
#endif /* SOURCE_SYSTEMIC_IPARAMETERPROVIDER_H_ */