24#include <knp/core/impexp.h>
51 OutputChannel(
const core::UID &channel_uid, core::MessageEndpoint &&endpoint)
52 : base_{channel_uid}, endpoint_(std::move(endpoint))
66 [[nodiscard]]
const auto &
get_uid()
const {
return base_.uid_; }
72 [[nodiscard]]
auto &
get_tags() {
return base_.tags_; }
80 std::vector<core::messaging::SpikeMessage>
update();
88 std::vector<core::messaging::SpikeMessage>
read_some_from_buffer(core::Step starting_step, core::Step final_step);
99 core::MessageEndpoint endpoint_;
104 std::vector<core::messaging::SpikeMessage> message_buffer_;
116template <
typename ResultType>
The OutputChannel class is a definition of an output channel.
std::vector< core::messaging::SpikeMessage > read_some_from_buffer(core::Step starting_step, core::Step final_step)
Read a specified interval of messages from sorted internal message buffer.
OutputChannel(OutputChannel &&)=default
Move constructor.
auto & get_tags()
Get tags used by the backend.
OutputChannel(const core::UID &channel_uid, core::MessageEndpoint &&endpoint)
Base output channel constructor.
std::vector< core::messaging::SpikeMessage > update()
Unload spike messages from the endpoint into the message buffer.
const auto & get_uid() const
Get backend UID.
Class definition for core library basic entities.
Message endpoint interface.
Common header for messaging.
uint64_t Step
Type used to store a step number in the form of a 64-bit unsigned integer.
Output channel namespace.
ResultType output_channel_get(OutputChannel &output_channel, OutputConverter< ResultType > converter, core::Step step_from, core::Step step_to)
Read all accumulated spike messages from subscription and convert them to output data.
std::function< ResultType(const std::vector< core::messaging::SpikeMessage > &messages)> OutputConverter
Function used to convert spike messages into output data.
Header for output converter.