18 underlying_writer(writer),
26 underlying_writer->finish(marker);
27 work_beacon->notify_work_available();
35 size_t* identifier =
nullptr)
override
37 return underlying_writer->prepare(m, size, wait, identifier);
41 const WriteMarker& marker,
const uint8_t* bytes,
size_t size)
override
43 return underlying_writer->write_bytes(marker, bytes, size);
48 return underlying_writer->get_max_message_size();
63 outbound_work_beacon(
std::make_shared<
ccf::
ds::WorkBeacon>()),
64 inbound_work_beacon(
std::make_shared<
ccf::
ds::WorkBeacon>())
69 return outbound_work_beacon;
74 return inbound_work_beacon;
79 return std::make_shared<NotifyingWriter>(
85 return std::make_shared<NotifyingWriter>(
Definition ring_buffer_types.h:153
virtual WriterPtr create_writer_to_inside()=0
virtual WriterPtr create_writer_to_outside()=0
Definition ring_buffer_types.h:61
std::optional< size_t > WriteMarker
Definition ring_buffer_types.h:98
Definition notifying.h:53
std::shared_ptr< NotifyingWriter > create_notifying_writer_to_outside()
Definition notifying.h:77
std::shared_ptr< ringbuffer::AbstractWriter > create_writer_to_outside() override
Definition notifying.h:89
std::shared_ptr< NotifyingWriter > create_notifying_writer_to_inside()
Definition notifying.h:83
std::shared_ptr< ringbuffer::AbstractWriter > create_writer_to_inside() override
Definition notifying.h:95
ccf::ds::WorkBeaconPtr get_inbound_work_beacon()
Definition notifying.h:72
ccf::ds::WorkBeaconPtr get_outbound_work_beacon()
Definition notifying.h:67
NotifyingWriterFactory(AbstractWriterFactory &impl)
Definition notifying.h:61
Definition notifying.h:11
NotifyingWriter(const WriterPtr &writer, const ccf::ds::WorkBeaconPtr &wb)
Definition notifying.h:17
WriteMarker write_bytes(const WriteMarker &marker, const uint8_t *bytes, size_t size) override
Definition notifying.h:40
size_t get_max_message_size() override
Definition notifying.h:46
WriteMarker prepare(Message m, size_t size, bool wait=true, size_t *identifier=nullptr) override
Definition notifying.h:31
void finish(const WriteMarker &marker) override
Definition notifying.h:24
std::shared_ptr< WorkBeacon > WorkBeaconPtr
Definition work_beacon.h:60
Definition app_interface.h:14
Definition non_blocking.h:14
std::shared_ptr< AbstractWriter > WriterPtr
Definition ring_buffer_types.h:150
uint32_t Message
Definition ring_buffer_types.h:19