BlackBoard notifier. More...
#include <>>
Public Member Functions | |
BlackBoardNotifier () | |
Constructor. | |
virtual | ~BlackBoardNotifier () |
Destructor. | |
void | register_listener (BlackBoardInterfaceListener *listener, unsigned int flags) |
Register BB event listener. | |
void | unregister_listener (BlackBoardInterfaceListener *listener) |
Unregister BB interface listener. | |
void | register_observer (BlackBoardInterfaceObserver *observer, unsigned int flags) |
Register BB interface observer. | |
void | unregister_observer (BlackBoardInterfaceObserver *observer) |
Unregister BB interface observer. | |
void | notify_of_data_change (const Interface *interface) |
Notify of data change. | |
bool | notify_of_message_received (const Interface *interface, Message *message) |
Notify of message received Notify all subscribers of the given interface of an incoming message This also influences logging and sending data over the network so it is mandatory to call this function! The interface base class write method does that for you. | |
void | notify_of_interface_created (const char *type, const char *id) throw () |
Notify that an interface has been created. | |
void | notify_of_interface_destroyed (const char *type, const char *id) throw () |
Notify that an interface has been destroyed. | |
void | notify_of_writer_added (const Interface *interface, unsigned int event_instance_serial) throw () |
Notify that writer has been added. | |
void | notify_of_writer_removed (const Interface *interface, unsigned int event_instance_serial) throw () |
Notify that writer has been removed. | |
void | notify_of_reader_added (const Interface *interface, unsigned int event_instance_serial) throw () |
Notify that reader has been added. | |
void | notify_of_reader_removed (const Interface *interface, unsigned int event_instance_serial) throw () |
Notify that reader has been removed. |
BlackBoard notifier.
This class is used by the BlackBoard to notify listeners and observers of changes.
Definition at line 43 of file notifier.h.
fawkes::BlackBoardNotifier::BlackBoardNotifier | ( | ) |
Constructor.
Definition at line 55 of file notifier.cpp.
fawkes::BlackBoardNotifier::~BlackBoardNotifier | ( | ) | [virtual] |
Destructor.
Definition at line 80 of file notifier.cpp.
void fawkes::BlackBoardNotifier::notify_of_data_change | ( | const Interface * | interface | ) |
Notify of data change.
Notify all subscribers of the given interface of a data change. This also influences logging and sending data over the network so it is mandatory to call this function! The interface base class write method does that for you.
interface | interface whose subscribers to notify |
Definition at line 706 of file notifier.cpp.
References fawkes::BlackBoardInterfaceListener::bb_interface_data_changed(), fawkes::BlackBoardInterfaceListener::bbil_data_interface(), fawkes::BlackBoardInterfaceListener::bbil_name(), fawkes::Mutex::lock(), fawkes::LibLogger::log_warn(), fawkes::Interface::uid(), fawkes::Mutex::unlock(), fawkes::WaitCondition::wait(), and fawkes::WaitCondition::wake_all().
Referenced by fawkes::BlackBoardInterfaceManager::notify_of_data_change(), and fawkes::BlackBoardInterfaceProxy::process_data_changed().
void fawkes::BlackBoardNotifier::notify_of_interface_created | ( | const char * | type, | |
const char * | id | |||
) | throw () |
Notify that an interface has been created.
type | type of the interface | |
id | ID of the interface |
Definition at line 394 of file notifier.cpp.
References fawkes::BlackBoardInterfaceObserver::bb_interface_created().
Referenced by fawkes::BlackBoardInterfaceManager::open_for_reading(), and fawkes::BlackBoardInterfaceManager::open_for_writing().
void fawkes::BlackBoardNotifier::notify_of_interface_destroyed | ( | const char * | type, | |
const char * | id | |||
) | throw () |
Notify that an interface has been destroyed.
type | type of the interface | |
id | ID of the interface |
Definition at line 427 of file notifier.cpp.
References fawkes::BlackBoardInterfaceObserver::bb_interface_destroyed().
Referenced by fawkes::BlackBoardInterfaceManager::close().
bool fawkes::BlackBoardNotifier::notify_of_message_received | ( | const Interface * | interface, | |
Message * | message | |||
) |
Notify of message received Notify all subscribers of the given interface of an incoming message This also influences logging and sending data over the network so it is mandatory to call this function! The interface base class write method does that for you.
interface | interface whose subscribers to notify | |
message | message which is being received |
Definition at line 768 of file notifier.cpp.
References fawkes::BlackBoardInterfaceListener::bb_interface_message_received(), fawkes::BlackBoardInterfaceListener::bbil_message_interface(), fawkes::BlackBoardInterfaceListener::bbil_name(), fawkes::Mutex::lock(), fawkes::LibLogger::log_warn(), fawkes::Interface::uid(), fawkes::Mutex::unlock(), fawkes::WaitCondition::wait(), and fawkes::WaitCondition::wake_all().
Referenced by fawkes::BlackBoardInterfaceProxy::process_interface_message(), and fawkes::BlackBoardMessageManager::transmit().
void fawkes::BlackBoardNotifier::notify_of_reader_added | ( | const Interface * | interface, | |
unsigned int | event_instance_serial | |||
) | throw () |
Notify that reader has been added.
interface | interface for which the reader has been added | |
event_instance_serial | instance serial of the interface that caused the event |
Definition at line 594 of file notifier.cpp.
References fawkes::BlackBoardInterfaceListener::bb_interface_reader_added(), fawkes::BlackBoardInterfaceListener::bbil_name(), fawkes::BlackBoardInterfaceListener::bbil_reader_interface(), and fawkes::LibLogger::log_warn().
Referenced by fawkes::BlackBoardInterfaceManager::open_for_reading(), fawkes::BlackBoardInterfaceManager::open_multiple_for_reading(), and fawkes::BlackBoardInterfaceProxy::reader_added().
void fawkes::BlackBoardNotifier::notify_of_reader_removed | ( | const Interface * | interface, | |
unsigned int | event_instance_serial | |||
) | throw () |
Notify that reader has been removed.
interface | interface for which the reader has been removed | |
event_instance_serial | instance serial of the interface that caused the event |
Definition at line 636 of file notifier.cpp.
References fawkes::BlackBoardInterfaceListener::bb_interface_reader_removed(), fawkes::BlackBoardInterfaceListener::bbil_name(), fawkes::BlackBoardInterfaceListener::bbil_reader_interface(), fawkes::LibLogger::log_warn(), and fawkes::Interface::serial().
Referenced by fawkes::BlackBoardInterfaceManager::close(), and fawkes::BlackBoardInterfaceProxy::reader_removed().
void fawkes::BlackBoardNotifier::notify_of_writer_added | ( | const Interface * | interface, | |
unsigned int | event_instance_serial | |||
) | throw () |
Notify that writer has been added.
interface | the interface for which the event happened. It is not necessarily the instance which caused the event, but it must have the same mem serial. | |
event_instance_serial | the instance serial of the interface that caused the event |
Definition at line 487 of file notifier.cpp.
References fawkes::BlackBoardInterfaceListener::bb_interface_writer_added(), fawkes::BlackBoardInterfaceListener::bbil_name(), fawkes::BlackBoardInterfaceListener::bbil_writer_interface(), and fawkes::LibLogger::log_warn().
Referenced by fawkes::BlackBoardInterfaceManager::open_for_writing(), and fawkes::BlackBoardInterfaceProxy::writer_added().
void fawkes::BlackBoardNotifier::notify_of_writer_removed | ( | const Interface * | interface, | |
unsigned int | event_instance_serial | |||
) | throw () |
Notify that writer has been removed.
interface | interface for which the writer has been removed | |
event_instance_serial | instance serial of the interface that caused the event |
Definition at line 529 of file notifier.cpp.
References fawkes::BlackBoardInterfaceListener::bb_interface_writer_removed(), fawkes::BlackBoardInterfaceListener::bbil_name(), fawkes::BlackBoardInterfaceListener::bbil_writer_interface(), fawkes::LibLogger::log_warn(), and fawkes::Interface::serial().
Referenced by fawkes::BlackBoardInterfaceManager::close(), and fawkes::BlackBoardInterfaceProxy::writer_removed().
void fawkes::BlackBoardNotifier::register_listener | ( | BlackBoardInterfaceListener * | listener, | |
unsigned int | flags | |||
) |
Register BB event listener.
listener | BlackBoard event listener to register | |
flags | an or'ed combination of BBIL_FLAG_DATA, BBIL_FLAG_READER, BBIL_FLAG_WRITER and BBIL_FLAG_INTERFACE. Only for the given types the event listener is registered. BBIL_FLAG_ALL can be supplied to register for all events. |
Definition at line 106 of file notifier.cpp.
References fawkes::BlackBoardInterfaceListener::bbil_data_interfaces(), fawkes::BlackBoard::BBIL_FLAG_DATA, fawkes::BlackBoard::BBIL_FLAG_MESSAGES, fawkes::BlackBoard::BBIL_FLAG_READER, fawkes::BlackBoard::BBIL_FLAG_WRITER, fawkes::BlackBoardInterfaceListener::bbil_message_interfaces(), fawkes::BlackBoardInterfaceListener::bbil_name(), fawkes::BlackBoardInterfaceListener::bbil_reader_interfaces(), fawkes::BlackBoardInterfaceListener::bbil_writer_interfaces(), fawkes::Mutex::lock(), fawkes::LibLogger::log_warn(), fawkes::LockMap< KeyType, ValueType, LessKey >::mutex(), and fawkes::Mutex::unlock().
Referenced by fawkes::LocalBlackBoard::register_listener().
void fawkes::BlackBoardNotifier::register_observer | ( | BlackBoardInterfaceObserver * | observer, | |
unsigned int | flags | |||
) |
Register BB interface observer.
observer | BlackBoard interface observer to register | |
flags | an or'ed combination of BBIO_FLAG_CREATED, BBIO_FLAG_DESTROYED |
Definition at line 300 of file notifier.cpp.
References fawkes::BlackBoard::BBIO_FLAG_CREATED, fawkes::BlackBoard::BBIO_FLAG_DESTROYED, fawkes::BlackBoardInterfaceObserver::bbio_get_observed_create(), fawkes::BlackBoardInterfaceObserver::bbio_get_observed_destroy(), fawkes::Mutex::lock(), and fawkes::Mutex::unlock().
Referenced by fawkes::LocalBlackBoard::register_observer().
void fawkes::BlackBoardNotifier::unregister_listener | ( | BlackBoardInterfaceListener * | listener | ) |
Unregister BB interface listener.
This will remove the given BlackBoard interface listener from any event that it was previously registered for.
listener | BlackBoard event listener to remove |
Definition at line 172 of file notifier.cpp.
Referenced by fawkes::LocalBlackBoard::unregister_listener().
void fawkes::BlackBoardNotifier::unregister_observer | ( | BlackBoardInterfaceObserver * | observer | ) |
Unregister BB interface observer.
This will remove the given BlackBoard event listener from any event that it was previously registered for.
observer | BlackBoard event listener to remove |
Definition at line 367 of file notifier.cpp.
Referenced by fawkes::LocalBlackBoard::unregister_observer().