20 underlying_writer(
std::move(writer)),
21 work_beacon(
std::move(wb))
28 underlying_writer->finish(marker);
29 work_beacon->notify_work_available();
37 size_t* identifier =
nullptr)
override
39 return underlying_writer->prepare(m, size, wait, identifier);
43 const WriteMarker& marker,
const uint8_t* bytes,
size_t size)
override
45 return underlying_writer->write_bytes(marker, bytes, size);
50 return underlying_writer->get_max_message_size();
65 outbound_work_beacon(
std::make_shared<
ccf::
ds::WorkBeacon>()),
66 inbound_work_beacon(
std::make_shared<
ccf::
ds::WorkBeacon>())
71 return outbound_work_beacon;
76 return inbound_work_beacon;
81 return std::make_shared<NotifyingWriter>(
87 return std::make_shared<NotifyingWriter>(
Definition ring_buffer_types.h:157
virtual WriterPtr create_writer_to_inside()=0
virtual WriterPtr create_writer_to_outside()=0
Definition ring_buffer_types.h:63
std::optional< size_t > WriteMarker
Definition ring_buffer_types.h:100
Definition notifying.h:55
std::shared_ptr< NotifyingWriter > create_notifying_writer_to_outside()
Definition notifying.h:79
std::shared_ptr< ringbuffer::AbstractWriter > create_writer_to_outside() override
Definition notifying.h:91
std::shared_ptr< NotifyingWriter > create_notifying_writer_to_inside()
Definition notifying.h:85
std::shared_ptr< ringbuffer::AbstractWriter > create_writer_to_inside() override
Definition notifying.h:97
ccf::ds::WorkBeaconPtr get_inbound_work_beacon()
Definition notifying.h:74
ccf::ds::WorkBeaconPtr get_outbound_work_beacon()
Definition notifying.h:69
NotifyingWriterFactory(AbstractWriterFactory &impl)
Definition notifying.h:63
Definition notifying.h:13
NotifyingWriter(WriterPtr writer, ccf::ds::WorkBeaconPtr wb)
Definition notifying.h:19
WriteMarker write_bytes(const WriteMarker &marker, const uint8_t *bytes, size_t size) override
Definition notifying.h:42
size_t get_max_message_size() override
Definition notifying.h:48
WriteMarker prepare(Message m, size_t size, bool wait=true, size_t *identifier=nullptr) override
Definition notifying.h:33
void finish(const WriteMarker &marker) override
Definition notifying.h:26
std::shared_ptr< WorkBeacon > WorkBeaconPtr
Definition work_beacon.h:60
Definition app_interface.h:14
Definition non_blocking.h:15
std::shared_ptr< AbstractWriter > WriterPtr
Definition ring_buffer_types.h:154
uint32_t Message
Definition ring_buffer_types.h:19