|
Fawkes API
Fawkes Development Version
|
Keeps a queue of subscribed blackboard events that can be queried in a thread-safe manner. More...
#include <blackboard_listener_thread.h>

Classes | |
| class | Changed |
| An interface changed. More... | |
| class | Created |
| A new interface was created. More... | |
| class | Destroyed |
| An interface was destroyed. More... | |
| class | Event |
| Abstract superclass for blackboard events. More... | |
Public Member Functions | |
| void | observe_pattern (const char *type_pattern, const char *id_pattern) noexcept |
| Trigger events if an interface matching the pattern is created or destroyed. More... | |
| void | listen_for_change (Interface *interface) noexcept |
| Register. More... | |
| virtual void | bb_interface_created (const char *type, const char *id) noexcept override |
| Called by the BlackBoardInterfaceObserver when an interface matching a subscribed pattern is created. More... | |
| virtual void | bb_interface_destroyed (const char *type, const char *id) noexcept override |
| Called by the BlackBoardInterfaceObserver when an interface is destroyed. More... | |
| virtual void | bb_interface_data_changed (Interface *interface) noexcept override |
| Called by the BlackBoardInterfaceListener when an interface changes. More... | |
| bool | event_pending () |
| Test whether any events are in the queue. More... | |
| shared_ptr< Event > | event_pop () |
| Return and remove the next event in the queue. More... | |
Public Member Functions inherited from fawkes::Thread | |
| virtual | ~Thread () |
| Virtual destructor. More... | |
| virtual void | init () |
| Initialize the thread. More... | |
| bool | prepare_finalize () |
| Prepare finalization. More... | |
| virtual bool | prepare_finalize_user () |
| Prepare finalization user implementation. More... | |
| virtual void | finalize () |
| Finalize the thread. More... | |
| void | cancel_finalize () |
| Cancel finalization. More... | |
| void | start (bool wait=true) |
| Call this method to start the thread. More... | |
| void | cancel () |
| Cancel a thread. More... | |
| void | join () |
| Join the thread. More... | |
| void | detach () |
| Detach the thread. More... | |
| void | kill (int sig) |
| Send signal to a thread. More... | |
| bool | operator== (const Thread &thread) |
| Check if two threads are the same. More... | |
| void | wakeup () |
| Wake up thread. More... | |
| void | wakeup (Barrier *barrier) |
| Wake up thread and wait for barrier afterwards. More... | |
| void | wait_loop_done () |
| Wait for the current loop iteration to finish. More... | |
| OpMode | opmode () const |
| Get operation mode. More... | |
| pthread_t | thread_id () const |
| Get ID of thread. More... | |
| bool | started () const |
| Check if thread has been started. More... | |
| bool | cancelled () const |
| Check if thread has been cancelled. More... | |
| bool | detached () const |
| Check if thread has been detached. More... | |
| bool | running () const |
| Check if the thread is running. More... | |
| bool | waiting () const |
| Check if thread is currently waiting for wakeup. More... | |
| const char * | name () const |
| Get name of thread. More... | |
| void | set_flags (uint32_t flags) |
| Set all flags in one go. More... | |
| void | set_flag (uint32_t flag) |
| Set flag for the thread. More... | |
| void | unset_flag (uint32_t flag) |
| Unset flag. More... | |
| bool | flagged_bad () const |
| Check if FLAG_BAD was set. More... | |
| void | set_delete_on_exit (bool del) |
| Set whether the thread should be deleted on exit. More... | |
| void | set_prepfin_hold (bool hold) |
| Hold prepare_finalize(). More... | |
| void | add_notification_listener (ThreadNotificationListener *notification_listener) |
| Add notification listener. More... | |
| void | remove_notification_listener (ThreadNotificationListener *notification_listener) |
| Remove notification listener. More... | |
| void | notify_of_failed_init () |
| Notify of failed init. More... | |
| void | add_loop_listener (ThreadLoopListener *loop_listener) |
| Add loop listener. More... | |
| void | remove_loop_listener (ThreadLoopListener *loop_listener) |
| Remove loop listener. More... | |
Public Member Functions inherited from fawkes::LoggingAspect | |
| LoggingAspect () | |
| Constructor. More... | |
| virtual | ~LoggingAspect () |
| Virtual empty Destructor. More... | |
| void | init_LoggingAspect (Logger *logger) |
| Set the logger. More... | |
Public Member Functions inherited from fawkes::Aspect | |
| const std::list< const char * > & | get_aspects () const |
| Get list of aspect names attached to a aspected thread. More... | |
Public Member Functions inherited from fawkes::ConfigurableAspect | |
| ConfigurableAspect () | |
| Constructor. More... | |
| virtual | ~ConfigurableAspect () |
| Virtual empty Destructor. More... | |
| void | init_ConfigurableAspect (Configuration *config) |
| Set the configuration It is guaranteed that this is called for a configurable thread before Thread::start() is called (when running regularly inside Fawkes). More... | |
Public Member Functions inherited from fawkes::BlackBoardAspect | |
| BlackBoardAspect (const char *owner=NULL) | |
| Constructor. More... | |
| virtual | ~BlackBoardAspect () |
| Virtual empty destructor. More... | |
| void | init_BlackBoardAspect (BlackBoard *bb) |
| Init BlackBoard aspect. More... | |
Public Member Functions inherited from fawkes::BlackBoardInterfaceObserver | |
| BlackBoardInterfaceObserver () | |
| Empty constructor. More... | |
| virtual | ~BlackBoardInterfaceObserver () |
| Destructor. 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... | |
Static Public Member Functions | |
| static BlackboardListenerThread * | instance () |
| Get the singleton instance of this thread. More... | |
| static void | cleanup_instance () |
| Delete singleton instance, e.g. More... | |
Static Public Member Functions inherited from fawkes::Thread | |
| static Thread * | current_thread () |
| Get the Thread instance of the currently running thread. More... | |
| static Thread * | current_thread_noexc () throw () |
| Similar to current_thread, but does never throw an exception. More... | |
| static pthread_t | current_thread_id () |
| Get the ID of the currently running thread. More... | |
| static std::string | current_thread_name () |
| Get the name of the current thread. More... | |
| static void | current_thread_name (const std::string &thread_name) |
| Set the name of the current thread. More... | |
| static void | init_main () |
| Initialize Thread wrapper instance for main thread. More... | |
| static void | destroy_main () |
| Destroy main thread wrapper instance. More... | |
| static void | set_cancel_state (CancelState new_state, CancelState *old_state=0) |
| Set the cancel state of the current thread. More... | |
Additional Inherited Members | |
Public Types inherited from fawkes::Thread | |
| enum | OpMode { OPMODE_CONTINUOUS , OPMODE_WAITFORWAKEUP } |
| Thread operation mode. More... | |
| enum | CancelState { CANCEL_ENABLED , CANCEL_DISABLED } |
| Cancel state. More... | |
Public Types inherited from fawkes::BlackBoardInterfaceListener | |
| enum | QueueEntryType { DATA = 0 , MESSAGES = 1 , READER = 2 , WRITER = 3 } |
| Queue entry type. More... | |
| typedef std::list< QueueEntry > | InterfaceQueue |
| Queue of additions/removal of interfaces. More... | |
| typedef std::map< std::string, Interface * > | InterfaceMap |
| Map of currently active event subscriptions. More... | |
Static Public Attributes inherited from fawkes::Thread | |
| static const unsigned int | FLAG_BAD = 0x00000001 |
| Standard thread flag: "thread is bad". More... | |
Protected Types inherited from fawkes::BlackBoardInterfaceObserver | |
| typedef LockMap< std::string, std::list< std::string > > | ObservedInterfaceLockMap |
| Type for lockable interface type hash sets. More... | |
| typedef ObservedInterfaceLockMap::iterator | ObservedInterfaceLockMapIterator |
| Type for iterator of lockable interface type hash sets. More... | |
Protected Member Functions inherited from fawkes::Thread | |
| Thread (const char *name) | |
| Constructor. More... | |
| Thread (const char *name, OpMode op_mode) | |
| Constructor. More... | |
| void | exit () |
| Exit the thread. More... | |
| void | test_cancel () |
| Set cancellation point. More... | |
| void | yield () |
| Yield the processor to another thread or process. More... | |
| virtual void | run () |
| Code to execute in the thread. More... | |
| void | set_opmode (OpMode op_mode) |
| Set operation mode. More... | |
| void | set_prepfin_conc_loop (bool concurrent=true) |
| Set concurrent execution of prepare_finalize() and loop(). More... | |
| void | set_coalesce_wakeups (bool coalesce=true) |
| Set wakeup coalescing. More... | |
| void | set_name (const char *format,...) |
| Set name of thread. More... | |
| virtual void | once () |
| Execute an action exactly once. More... | |
| virtual void | loop () |
| Code to execute in the thread. More... | |
| bool | wakeup_pending () |
| Check if wakeups are pending. More... | |
Protected Member Functions inherited from fawkes::Aspect | |
| void | add_aspect (const char *name) |
| Add an aspect to a thread. More... | |
Protected Member Functions inherited from fawkes::BlackBoardInterfaceObserver | |
| void | bbio_add_observed_create (const char *type_pattern, const char *id_pattern="*") throw () |
| Add interface creation type to watch list. More... | |
| void | bbio_add_observed_destroy (const char *type_pattern, const char *id_pattern="*") throw () |
| Add interface destruction type to watch list. More... | |
| ObservedInterfaceLockMap * | bbio_get_observed_create () throw () |
| Get interface creation type watch list. More... | |
| ObservedInterfaceLockMap * | bbio_get_observed_destroy () throw () |
| Get interface destriction type watch list. 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... | |
| Interface * | bbil_data_interface (const char *iuid) throw () |
| Get interface instance for given UID. More... | |
| Interface * | bbil_message_interface (const char *iuid) throw () |
| Get interface instance for given UID. More... | |
| Interface * | bbil_reader_interface (const char *iuid) throw () |
| Get interface instance for given UID. More... | |
| Interface * | bbil_writer_interface (const char *iuid) throw () |
| Get interface instance for given UID. More... | |
Protected Attributes inherited from fawkes::Thread | |
| bool | finalize_prepared |
| True if prepare_finalize() has been called and was not stopped with a cancel_finalize(), false otherwise. More... | |
| Mutex * | loop_mutex |
| Mutex that is used to protect a call to loop(). More... | |
| Mutex * | loopinterrupt_antistarve_mutex |
| Mutex to avoid starvation when trying to lock loop_mutex. More... | |
Protected Attributes inherited from fawkes::LoggingAspect | |
| Logger * | logger |
| This is the Logger member used to access the logger. More... | |
Protected Attributes inherited from fawkes::ConfigurableAspect | |
| Configuration * | config |
| This is the Configuration member used to access the configuration. More... | |
Protected Attributes inherited from fawkes::BlackBoardAspect | |
| BlackBoard * | blackboard |
| This is the BlackBoard instance you can use to interact with the BlackBoard. More... | |
Keeps a queue of subscribed blackboard events that can be queried in a thread-safe manner.
Definition at line 39 of file blackboard_listener_thread.h.
|
overridevirtualnoexcept |
Called by the BlackBoardInterfaceObserver when an interface matching a subscribed pattern is created.
| type | Interface type name |
| id | Interface ID |
Reimplemented from fawkes::BlackBoardInterfaceObserver.
Definition at line 78 of file blackboard_listener_thread.cpp.
|
overridevirtualnoexcept |
Called by the BlackBoardInterfaceListener when an interface changes.
| interface | The changed interface |
Reimplemented from fawkes::BlackBoardInterfaceListener.
Definition at line 99 of file blackboard_listener_thread.cpp.
|
overridevirtualnoexcept |
Called by the BlackBoardInterfaceObserver when an interface is destroyed.
| type | Interface type name |
| id | Interface ID |
Reimplemented from fawkes::BlackBoardInterfaceObserver.
Definition at line 89 of file blackboard_listener_thread.cpp.
|
static |
Delete singleton instance, e.g.
when unloading the plugin
Definition at line 48 of file blackboard_listener_thread.cpp.
| bool BlackboardListenerThread::event_pending | ( | ) |
Test whether any events are in the queue.
Definition at line 109 of file blackboard_listener_thread.cpp.
| shared_ptr< BlackboardListenerThread::Event > BlackboardListenerThread::event_pop | ( | ) |
Return and remove the next event in the queue.
Definition at line 119 of file blackboard_listener_thread.cpp.
|
static |
Get the singleton instance of this thread.
Definition at line 39 of file blackboard_listener_thread.cpp.
Referenced by EclipseAgentThread::loop().
|
noexcept |
Register.
| interface | for change notifications |
Definition at line 67 of file blackboard_listener_thread.cpp.
|
noexcept |
Trigger events if an interface matching the pattern is created or destroyed.
| type_pattern | See BlackBoardInterfaceObserver::bbio_add_observed_create |
| id_pattern | See BlackBoardInterfaceObserver::bbio_add_observed_create |
Definition at line 58 of file blackboard_listener_thread.cpp.