Fawkes API  Fawkes Development Version
fawkes::BlackBoardOnUpdateWaker Class Reference

Wake threads when a blackboard interface is updated. More...

#include <>>

Inheritance diagram for fawkes::BlackBoardOnUpdateWaker:

Public Member Functions

 BlackBoardOnUpdateWaker (BlackBoard *bb, Interface *interface, Thread *thread)
 Constructor. More...
 
virtual ~BlackBoardOnUpdateWaker ()
 Destructor. More...
 
virtual void bb_interface_data_changed (Interface *interface) throw ()
 BlackBoard data changed notification. More...
 
- Public Member Functions inherited from fawkes::BlackBoardInterfaceListener
 BlackBoardInterfaceListener (const char *name_format,...)
 Constructor. More...
 
virtual ~BlackBoardInterfaceListener ()
 Destructor. More...
 
const char * bbil_name () const
 Get BBIL name. More...
 
virtual bool bb_interface_message_received (Interface *interface, Message *message) throw ()
 BlackBoard message received notification. More...
 
virtual void bb_interface_writer_added (Interface *interface, unsigned int instance_serial) throw ()
 A writing instance has been opened for a watched interface. More...
 
virtual void bb_interface_writer_removed (Interface *interface, unsigned int instance_serial) throw ()
 A writing instance has been closed for a watched interface. More...
 
virtual void bb_interface_reader_added (Interface *interface, unsigned int instance_serial) throw ()
 A reading instance has been opened for a watched interface. More...
 
virtual void bb_interface_reader_removed (Interface *interface, unsigned int instance_serial) throw ()
 A reading instance has been closed for a watched interface. More...
 

Additional Inherited Members

- Public Types inherited from fawkes::BlackBoardInterfaceListener
enum  QueueEntryType { DATA = 0, MESSAGES = 1, READER = 2, WRITER = 3 }
 Queue entry type. More...
 
typedef std::list< QueueEntryInterfaceQueue
 Queue of additions/removal of interfaces. More...
 
typedef std::map< std::string, Interface * > InterfaceMap
 Map of currently active event subscriptions. More...
 
- Protected Member Functions inherited from fawkes::BlackBoardInterfaceListener
void bbil_add_data_interface (Interface *interface)
 Add an interface to the data modification watch list. More...
 
void bbil_add_message_interface (Interface *interface)
 Add an interface to the message received watch list. More...
 
void bbil_add_reader_interface (Interface *interface)
 Add an interface to the reader addition/removal watch list. More...
 
void bbil_add_writer_interface (Interface *interface)
 Add an interface to the writer addition/removal watch list. More...
 
void bbil_remove_data_interface (Interface *interface)
 Remove an interface to the data modification watch list. More...
 
void bbil_remove_message_interface (Interface *interface)
 Remove an interface to the message received watch list. More...
 
void bbil_remove_reader_interface (Interface *interface)
 Remove an interface to the reader addition/removal watch list. More...
 
void bbil_remove_writer_interface (Interface *interface)
 Remove an interface to the writer addition/removal watch list. More...
 
Interfacebbil_data_interface (const char *iuid) throw ()
 Get interface instance for given UID. More...
 
Interfacebbil_message_interface (const char *iuid) throw ()
 Get interface instance for given UID. More...
 
Interfacebbil_reader_interface (const char *iuid) throw ()
 Get interface instance for given UID. More...
 
Interfacebbil_writer_interface (const char *iuid) throw ()
 Get interface instance for given UID. More...
 

Detailed Description

Wake threads when a blackboard interface is updated.

This utility class registers as a BlackBoardInterfaceListener and if an update is observed it wakes the given thread.

Author
Tim Niemueller

Definition at line 37 of file on_update_waker.h.

Constructor & Destructor Documentation

◆ BlackBoardOnUpdateWaker()

fawkes::BlackBoardOnUpdateWaker::BlackBoardOnUpdateWaker ( BlackBoard bb,
Interface interface,
Thread thread 
)

Constructor.

Parameters
bbblackboard to register with
interfaceInterface to monitor for data updates
threadthread to wake

Definition at line 47 of file on_update_waker.cpp.

References fawkes::BlackBoardInterfaceListener::bbil_add_data_interface(), fawkes::BlackBoard::BBIL_FLAG_DATA, and fawkes::BlackBoard::register_listener().

◆ ~BlackBoardOnUpdateWaker()

fawkes::BlackBoardOnUpdateWaker::~BlackBoardOnUpdateWaker ( )
virtual

Destructor.

Unregisters from the blackboard.

Definition at line 60 of file on_update_waker.cpp.

References fawkes::BlackBoard::unregister_listener().

Member Function Documentation

◆ bb_interface_data_changed()

void fawkes::BlackBoardOnUpdateWaker::bb_interface_data_changed ( Interface interface)
throw (
)
virtual

BlackBoard data changed notification.

This is called whenever the data in an interface that you registered for is modified. This happens if a writer calls the Interface::write() method.

Parameters
interfaceinterface instance that you supplied to bbil_add_data_interface()

Reimplemented from fawkes::BlackBoardInterfaceListener.

Definition at line 67 of file on_update_waker.cpp.

References fawkes::Thread::wakeup().


The documentation for this class was generated from the following files: