MotorControlModuleSDFM_TMS3.../Projects/EFC_Communication/UMLibrary/systemic/IParameterProvider.hh
2024-06-07 11:12:56 +03:00

56 lines
2.4 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* 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_ */