MotorControlModuleSDFM_TMS3.../Projects/EFC_Application/UMLibrary/communication/IBinaryDataIssuer.hh

47 lines
1.4 KiB
C++
Raw Permalink 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.

//
// Created by laputin on 06.05.2023.
//
#ifndef UMLIBRARY_COMMUNICATION_I_BINARY_DATA_ISSUER_HH
#define UMLIBRARY_COMMUNICATION_I_BINARY_DATA_ISSUER_HH
#include <cstddef>
namespace communication {
/*!
* Интерфейс абонента предоставляющего бинарные данные.
*/
struct IBinaryDataIssuer {
/*!Метод предоставления бинарных данных.
* Метод должен записать свои данные в бинарной форме по предоставленному указателю с нулевым смещением,
* но не более чем size байт.
* @param data Буфер данных для записи своих данных.
* @param size Размер буфера данных.
*/
virtual void write( void * data, std::size_t size ) = 0;
};
/*!
* Интерфейс обработчика события предоставления бинарных данных.
*/
struct IBinaryDataWriteEvent {
virtual void write_event( IBinaryDataIssuer & issuer ) = 0;
};
/*!
* Интерфейс регистрации абонентов предоставляющего бинарные данные.
*/
struct IIssuerRegistrator {
/*!Метод регистрации абонента предоставляющего бинарные данные.
*
* @param bit_address Адрес данных абонента для записи внутри фрейма данных.
* @param bit_len - Длина данных абонента для записи внутри фрейма данных.
* @param subscriber - Указатель на зарегестрированного абонента.
*/
virtual void addIssuer( std::size_t bit_address, std::size_t bit_len, IBinaryDataIssuer * subscriber ) = 0;
};
} // namespace communication
#endif // UMLIBRARY_COMMUNICATION_I_BINARY_DATA_ISSUER_HH