MotorControlModuleSDFM_TMS3.../Projects/EFC_Application/UMLibrary/communication/service/IMessageLink.hh

41 lines
901 B
C++

/*
* IMessageLink.h
*
* Created on: 31 ìàðòà 2017 ã.
* Author: titov
*/
#ifndef SOURCES_COMMUNICATION_ITXLINKLINK_H_
#define SOURCES_COMMUNICATION_ITXLINKLINK_H_
#include "../../driver/IDataLink.hh"
#include "IMessageSeries.hh"
#include <cstddef>
namespace communication {
class IMessageLink {
public:
typedef driver::IRxLink istream;
typedef driver::ITxLink ostream;
//todo Ïî÷åìó íå iostream?
virtual istream & getData() = 0;
virtual ostream & createMessage( std::size_t size ) = 0;
//todo Ïî õîðîøåìó, ýòî äîëæíî áûòü ÷àñòüþ ïðîòîêîëà (òðàíñïîðòíûé óðîâåíü).
virtual bool createMessageSeries( std::size_t num_messages, IMessageSeriesHandler * handler ) = 0;
virtual std::size_t transmitBuffCapacity() const = 0;
virtual std::size_t receiveBuffCapacity() const = 0;
virtual ~IMessageLink() = default;
};
}
#endif /* SOURCES_COMMUNICATION_ITXLINKLINK_H_ */