forstio/source/forstio/io_wrapper.h

28 lines
610 B
C
Raw Normal View History

2021-06-18 00:17:18 +02:00
#pragma once
#include "async.h"
#include "message.h"
2021-06-18 00:17:18 +02:00
#include "io.h"
2021-12-29 19:26:22 +01:00
namespace saw {
template <typename Codec, typename Incoming, typename Outgoing, class InContainer = MessageContainer<Incoming>, class OutContainer = MessageContainer<Outgoing>>
2021-06-18 00:17:18 +02:00
class StreamingIoPeer {
private:
Codec codec;
Own<AsyncIoStream> io_stream;
Own<ConveyorFeeder<HeapMessageRoot<Incoming, InContainer>>> incoming_feeder = nullptr;
2021-06-18 00:17:18 +02:00
public:
StreamingIoPeer(Own<AsyncIoStream> stream);
void send(HeapMessageRoot<Outgoing, OutContainer> builder);
2021-06-18 00:17:18 +02:00
Conveyor<HeapMessageRootIncoming> startReadPump();
2021-06-18 00:17:18 +02:00
};
} // namespace saw