24 #ifndef __BLACKBOARD_INTERFACE_LISTENER_H_ 25 #define __BLACKBOARD_INTERFACE_LISTENER_H_ 27 #include <blackboard/blackboard.h> 28 #include <core/utils/lock_queue.h> 29 #include <utils/misc/string_compare.h> 82 unsigned int instance_serial)
throw();
84 unsigned int instance_serial)
throw();
86 unsigned int instance_serial)
throw();
88 unsigned int instance_serial)
throw();
109 InterfaceMap ¬_in_map,
111 Interface * bbil_find_interface(
const char *iuid, InterfaceMap &map);
113 const InterfaceQueue & bbil_acquire_queue() throw();
114 void bbil_release_queue(
BlackBoard::ListenerRegisterFlag flag) throw();
117 void bbil_release_maps() throw();
121 Mutex *__bbil_queue_mutex;
122 Mutex *__bbil_maps_mutex;
125 InterfaceQueue __bbil_queue;
Interface * bbil_reader_interface(const char *iuid)
Get interface instance for given UID.
virtual bool bb_interface_message_received(Interface *interface, Message *message)
BlackBoard message received notification.
Base class for all messages passed through interfaces in Fawkes BlackBoard.
bool op
true to add, false to remove
InterfaceMap messages
Message received event subscriptions.
InterfaceMap writer
Writer event subscriptions.
Fawkes library namespace.
virtual ~BlackBoardInterfaceListener()
Destructor.
Structure to hold maps for active subscriptions.
void bbil_add_writer_interface(Interface *interface)
Add an interface to the writer addition/removal watch list.
virtual void bb_interface_reader_removed(Interface *interface, unsigned int instance_serial)
A reading instance has been closed for a watched interface.
Interface * bbil_message_interface(const char *iuid)
Get interface instance for given UID.
Message received event entry.
InterfaceMap data
Data event subscriptions.
Base class for all Fawkes BlackBoard interfaces.
void bbil_remove_writer_interface(Interface *interface)
Remove an interface to the writer addition/removal watch list.
void bbil_remove_message_interface(Interface *interface)
Remove an interface to the message received watch list.
virtual void bb_interface_data_changed(Interface *interface)
BlackBoard data changed notification.
InterfaceMap reader
Reader event subscriptions.
BlackBoardInterfaceListener(const char *name_format,...)
Constructor.
QueueEntryType
Queue entry type.
void bbil_remove_data_interface(Interface *interface)
Remove an interface to the data modification watch list.
void bbil_add_reader_interface(Interface *interface)
Add an interface to the reader addition/removal watch list.
Interface * interface
interface this entry concerns
std::list< QueueEntry > InterfaceQueue
Queue of additions/removal of interfaces.
Interface * bbil_data_interface(const char *iuid)
Get interface instance for given UID.
Interface * bbil_writer_interface(const char *iuid)
Get interface instance for given UID.
virtual void bb_interface_reader_added(Interface *interface, unsigned int instance_serial)
A reading instance has been opened for a watched interface.
virtual void bb_interface_writer_added(Interface *interface, unsigned int instance_serial)
A writing instance has been opened for a watched interface.
Data changed event entry.
virtual void bb_interface_writer_removed(Interface *interface, unsigned int instance_serial)
A writing instance has been closed for a watched interface.
const char * bbil_name() const
Get BBIL name.
The BlackBoard abstract class.
Mutex mutual exclusion lock.
std::map< std::string, Interface * > InterfaceMap
Map of currently active event subscriptions.
void bbil_add_message_interface(Interface *interface)
Add an interface to the message received watch list.
void bbil_remove_reader_interface(Interface *interface)
Remove an interface to the reader addition/removal watch list.
BlackBoard interface listener.
void bbil_add_data_interface(Interface *interface)
Add an interface to the data modification watch list.
QueueEntryType type
What type this entry concerns.