32 std::shared_ptr<async::async_queue<events::display_message>>
filtered;
49 std::visit([
this](
const auto &evt) { this->
handle(evt); }, input);
76 filtered_queue_->push(msg);
81 if (not active_chat_rdx_.has_value()) {
82 filtered_queue_->push(msg);
87 if (msg.contact_rdx.has_value() and msg.contact_rdx.value() == active_chat_rdx_.value()) {
88 filtered_queue_->push(msg);
94 std::shared_ptr<async::async_queue<events::display_message>> filtered_queue_;
97 mutable std::optional<std::string> active_chat_rdx_;
std::variant< display_message, enter_chat_mode, exit_chat_mode > display_filter_input_t
Display filter input: either a display message or control event.
std::shared_ptr< async::async_queue< events::display_message > > filtered
Filters display messages based on active chat context.
auto handle(const events::display_message &msg) const -> void
Handles a display message, filtering based on chat context.
auto handle(const events::display_filter_input_t &input) const -> void
Variant handler for standard_processor.
display_filter(const out_queues_t &queues)
Constructs a display filter with the given output queue.
auto handle(const events::exit_chat_mode &) const -> void
Handles exiting chat mode.
auto handle(const events::enter_chat_mode &evt) const -> void
Handles entering chat mode.
Request to display a message to the user.
@ command_feedback
Command execution feedback.
@ system
System messages (always show)
Enter chat mode with specified contact.
Exit chat mode, return to showing all messages.