41 lines
901 B
C++
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_ */
|