Fawkes API  Fawkes Development Version
fawkes::BlackBoardInterfaceListMaintainer Class Reference

opens and maintains multiple interfaces defined by a pattern More...

#include "interface_list_maintainer.h"

Inheritance diagram for fawkes::BlackBoardInterfaceListMaintainer:

Public Member Functions

 BlackBoardInterfaceListMaintainer (const char *n, BlackBoard *bb, Logger *l, const char *type, const char *pattern)
 Constructor. More...
 
virtual ~BlackBoardInterfaceListMaintainer ()
 Destructor. More...
 
template<class InterfaceType >
std::list< InterfaceType * > lock_and_get_list ()
 Locks the mutex in this class and returns a list of all interfaces defined by the pattern. More...
 
void unlock_list ()
 unlocks the mutex in this class More...
 
- Public Member Functions inherited from fawkes::BlackBoardInterfaceObserver
 BlackBoardInterfaceObserver ()
 Empty constructor. More...
 
virtual ~BlackBoardInterfaceObserver ()
 Destructor. More...
 
virtual void bb_interface_destroyed (const char *type, const char *id) throw ()
 BlackBoard interface destroyed 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 void bb_interface_data_changed (Interface *interface) throw ()
 BlackBoard data changed notification. 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_reader_added (Interface *interface, unsigned int instance_serial) throw ()
 A reading instance has been opened 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 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::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...
 
ObservedInterfaceLockMapbbio_get_observed_create () throw ()
 Get interface creation type watch list. More...
 
ObservedInterfaceLockMapbbio_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...
 
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

opens and maintains multiple interfaces defined by a pattern

Author
Tobias Neumann

Definition at line 45 of file interface_list_maintainer.h.

Constructor & Destructor Documentation

◆ BlackBoardInterfaceListMaintainer()

BlackBoardInterfaceListMaintainer::BlackBoardInterfaceListMaintainer ( const char *  n,
BlackBoard bb,
Logger l,
const char *  type,
const char *  pattern 
)

◆ ~BlackBoardInterfaceListMaintainer()

Member Function Documentation

◆ lock_and_get_list()

template<class InterfaceType >
std::list< InterfaceType * > BlackBoardInterfaceListMaintainer::lock_and_get_list ( )

Locks the mutex in this class and returns a list of all interfaces defined by the pattern.

after the list is used unlock_list() needs to be called to unlock the mutex in this class

Returns
list of interfaces defined by the pattern

Definition at line 86 of file interface_list_maintainer.h.

References fawkes::LockList< Type >::lock().

◆ unlock_list()

void BlackBoardInterfaceListMaintainer::unlock_list ( )

unlocks the mutex in this class

this method needs to be called after lock_and_get_list() the list returned by lock_and_get_list() is invalid and shouldn't be used after this method is called

Definition at line 211 of file interface_list_maintainer.cpp.

References fawkes::LockList< Type >::unlock().


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