49 InputChannel(
const core::UID &channel_uid, core::MessageEndpoint &&endpoint,
const DataGenerator &generator)
50 : base_{channel_uid}, endpoint_(std::move(endpoint)), generator_(generator)
57 InputChannel(
const core::UID &channel_uid, core::MessageEndpoint &&endpoint, DataGenerator &&generator)
58 : base_{channel_uid}, endpoint_(std::move(endpoint)), generator_(std::move(generator))
77 [[nodiscard]]
const auto &
get_uid()
const {
return base_.uid_; }
83 [[nodiscard]]
auto &
get_tags() {
return base_.tags_; }
92 virtual bool send(core::Step step) {
return send_data(generator_(step), step); }
101 bool send_data(
const core::messaging::SpikeData &spikes, core::Step step)
108 core::messaging::SpikeMessage message{{get_uid(), step}, spikes};
109 endpoint_.send_message(message);
114 core::BaseData base_;
119 core::MessageEndpoint endpoint_;
136 const InputChannel &channel, core::MessageEndpoint &target_endpoint,
const core::UID &receiver_uid)
138 target_endpoint.
subscribe<core::messaging::SpikeMessage>(receiver_uid, {channel.
get_uid()});
Subscription< MessageType > & subscribe(const UID &receiver, const std::vector< UID > &senders)
Add a subscription to messages of the specified type from senders with given UIDs.
Class definition for core library basic entities.