Lines Matching refs:Event

29 template<typename Event>
31 static_assert(std::is_enum_v<Event> || std::is_integral_v<Event> ||
32 (std::is_class_v<Event> &&
33 std::is_default_constructible_v<Event> &&
34 std::is_copy_constructible_v<Event>));
45 friend class Channel<Event>;
74 int32_t Send(const Event &event)
83 Sender(std::shared_ptr<Channel<Event>> channel)
87 std::shared_ptr<Channel<Event>> channel_ { nullptr };
91 friend class Channel<Event>;
134 Event Peek()
136 return (channel_ != nullptr ? channel_->Peek() : Event());
146 Event Receive()
148 return (channel_ != nullptr ? channel_->Receive() : Event());
152 Receiver(std::shared_ptr<Channel<Event>> channel)
156 std::shared_ptr<Channel<Event>> channel_ { nullptr };
167 int32_t Send(const Event &event);
168 Event Peek();
170 Event Receive();
177 std::deque<Event> queue_;
180 template<typename Event>
181 std::pair<typename Channel<Event>::Sender, typename Channel<Event>::Receiver> Channel<Event>::OpenChannel()
183 std::shared_ptr<Channel<Event>> channel = std::make_shared<Channel<Event>>();
184 return std::make_pair(Channel<Event>::Sender(channel), Channel<Event>::Receiver(channel));
187 template<typename Event>
188 void Channel<Event>::Enable()
194 template<typename Event>
195 void Channel<Event>::Disable()
202 template<typename Event>
203 int32_t Channel<Event>::Send(const Event &event)
220 template<typename Event>
221 Event Channel<Event>::Peek()
232 template<typename Event>
233 void Channel<Event>::Pop()
244 template<typename Event>
245 Event Channel<Event>::Receive()
253 Event event = queue_.front();