24 #ifndef _LIBS_GUI_UTILS_INTERFACE_DISPATCHER_H_
25 #define _LIBS_GUI_UTILS_INTERFACE_DISPATCHER_H_
27 #include <blackboard/interface_listener.h>
28 #include <core/utils/lock_queue.h>
29 #include <glibmm/dispatcher.h>
41 bool message_enqueueing =
true);
44 std::list<fawkes::Interface *> ifaces,
45 bool message_enqueueing =
true);
75 bool message_enqueueing_;
77 Glib::Dispatcher dispatcher_data_changed_;
78 Glib::Dispatcher dispatcher_message_received_;
79 Glib::Dispatcher dispatcher_writer_added_;
80 Glib::Dispatcher dispatcher_writer_removed_;
81 Glib::Dispatcher dispatcher_reader_added_;
82 Glib::Dispatcher dispatcher_reader_removed_;
84 sigc::signal<void, Interface *> signal_data_changed_;
85 sigc::signal<void, Interface *, Message *> signal_message_received_;
86 sigc::signal<void, Interface *> signal_writer_added_;
87 sigc::signal<void, Interface *> signal_writer_removed_;
88 sigc::signal<void, Interface *> signal_reader_added_;
89 sigc::signal<void, Interface *> signal_reader_removed_;
BlackBoard interface listener.
Interface listener with dispatcher.
sigc::signal< void, Interface *, Message * > signal_message_received()
Get "message received" signal.
sigc::signal< void, Interface * > signal_reader_added()
Get "reader added" signal.
sigc::signal< void, Interface * > signal_reader_removed()
Get "reader removed" signal.
virtual void bb_interface_reader_added(Interface *interface, Uuid instance_serial) noexcept
A reading instance has been opened for a watched interface.
virtual void on_writer_added()
Internal event handler.
void set_message_enqueueing(bool enqueue)
Set if received messages should be enqueued or not.
sigc::signal< void, Interface * > signal_writer_added()
Get "writer added" signal.
virtual void on_data_changed()
Internal event handler.
virtual bool bb_interface_message_received(Interface *interface, Message *message) noexcept
BlackBoard message received notification.
virtual void on_reader_added()
Internal event handler.
virtual void bb_interface_reader_removed(Interface *interface, Uuid instance_serial) noexcept
A reading instance has been closed for a watched interface.
virtual void bb_interface_data_refreshed(Interface *interface) noexcept
BlackBoard data refreshed notification.
virtual void bb_interface_writer_added(Interface *interface, Uuid instance_serial) noexcept
A writing instance has been opened for a watched interface.
virtual void bb_interface_writer_removed(Interface *interface, Uuid instance_serial) noexcept
A writing instance has been closed for a watched interface.
sigc::signal< void, Interface * > signal_writer_removed()
Get "writer removed" signal.
virtual void on_message_received()
Internal event handler.
sigc::signal< void, Interface * > signal_data_changed()
Get "data changed" signal.
virtual void on_writer_removed()
Internal event handler.
virtual void on_reader_removed()
Internal event handler.
InterfaceDispatcher(const char *listener_name, fawkes::Interface *iface, bool message_enqueueing=true)
Constructor.
Base class for all Fawkes BlackBoard interfaces.
Base class for all messages passed through interfaces in Fawkes BlackBoard.
A convenience class for universally unique identifiers (UUIDs).
Fawkes library namespace.