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

47 lines
1.9 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.

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