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