23 #include "sync_listener.h"
25 #include <blackboard/blackboard.h>
26 #include <logging/logger.h>
28 using namespace fawkes;
59 __reader_bb = reader_bb;
60 __writer_bb = writer_bb;
83 if ( interface == __writer ) {
88 __reader->msgq_enqueue(m);
89 message->set_id(m->
id());
94 __logger->log_error(bbil_name(),
"Message received for unknown interface");
98 __logger->log_error(bbil_name(),
"Exception when message received");
99 __logger->log_error(
"SyncInterfaceListener", e);
109 if ( interface == __reader ) {
112 __writer->copy_values(__reader);
116 __logger->log_error(bbil_name(),
"Data changed for unknown interface");
119 __logger->log_error(bbil_name(),
"Exception when data changed");
120 __logger->log_error(bbil_name(), e);
virtual Message * clone() const
Clone this message.
Base class for all messages passed through interfaces in Fawkes BlackBoard.
void unref()
Decrement reference count and conditionally delete this instance.
virtual ~SyncInterfaceListener()
Destructor.
virtual void bb_interface_data_changed(fawkes::Interface *interface)
BlackBoard data changed notification.
virtual void unregister_listener(BlackBoardInterfaceListener *listener)
Unregister BB interface listener.
unsigned int id() const
Get message ID.
Base class for all Fawkes BlackBoard interfaces.
virtual void register_listener(BlackBoardInterfaceListener *listener, ListenerRegisterFlag flag=BBIL_FLAG_ALL)
Register BB event listener.
Base class for exceptions in Fawkes.
void ref()
Increment reference count.
virtual bool bb_interface_message_received(fawkes::Interface *interface, fawkes::Message *message)
BlackBoard message received notification.
The BlackBoard abstract class.
void set_hops(unsigned int hops)
Set number of hops.
void bbil_add_message_interface(Interface *interface)
Add an interface to the message received watch list.
BlackBoard interface listener.
void bbil_add_data_interface(Interface *interface)
Add an interface to the data modification watch list.
SyncInterfaceListener(fawkes::Logger *logger, fawkes::Interface *reader, fawkes::Interface *writer, fawkes::BlackBoard *reader_bb, fawkes::BlackBoard *writer_bb)
Constructor.