23 #ifndef __BLACKBOARD_INTERFACE_MANAGER_H_ 24 #define __BLACKBOARD_INTERFACE_MANAGER_H_ 26 #include <interface/mediators/interface_mediator.h> 28 #include <core/utils/lock_map.h> 29 #include <utils/misc/string_compare.h> 37 class InterfaceInfoList;
38 class BlackBoardMemoryManager;
39 class BlackBoardMessageManager;
41 class BlackBoardInstanceFactory;
42 class BlackBoardInterfaceListener;
43 class BlackBoardInterfaceObserver;
44 class BlackBoardNotifier;
58 const char *owner = NULL);
60 const char *owner = NULL);
65 const char *id_pattern)
const;
68 const char *id_pattern =
"*",
69 const char *owner = NULL);
78 std::list<std::string>
readers(
const std::string &uid)
const;
79 std::string
writer(
const std::string &uid)
const;
84 Interface * new_interface_instance(
const char *type,
const char *identifier,
const char *owner);
85 void delete_interface_instance(
Interface *interface);
87 void * find_interface_in_memory(
const char *type,
const char *identifier);
88 unsigned int next_mem_serial();
89 unsigned int next_instance_serial();
90 void create_interface(
const char *type,
const char *identifier,
const char *owner,
93 Interface * writer_for_mem_serial(
unsigned int mem_serial);
96 unsigned int instance_serial;
107 typedef struct _OwnerInfo {
108 _OwnerInfo() :
writer(NULL) {}
110 std::list<Interface *>
readers;
BlackBoard instance factory.
void close(Interface *interface)
Close interface.
virtual std::string writer(const Interface *interface) const
Get writer of interface.
Fawkes library namespace.
BlackBoard memory manager.
virtual void notify_of_data_change(const Interface *interface)
Notify of data change.
Base class for all Fawkes BlackBoard interfaces.
virtual ~BlackBoardInterfaceManager()
Destructor.
InterfaceInfoList * list(const char *type_pattern, const char *id_pattern) const
Get a constrained list of interfaces.
virtual unsigned int num_readers(const Interface *interface) const
Get number of readers.
Interface * open_for_writing(const char *interface_type, const char *identifier, const char *owner=NULL)
Open interface for writing.
Interface information list.
BlackBoardInterfaceManager(BlackBoardMemoryManager *bb_memmgr, BlackBoardMessageManager *bb_msgmgr, BlackBoardNotifier *bb_notifier)
Constructor.
std::list< Interface * > open_multiple_for_reading(const char *type_pattern, const char *id_pattern="*", const char *owner=NULL)
Open all interfaces of the given type for reading.
virtual std::list< std::string > readers(const Interface *interface) const
Get owners of interfaces who opened for reading.
BlackBoard message manager.
Interface * open_for_reading(const char *interface_type, const char *identifier, const char *owner=NULL)
Open interface for reading.
InterfaceInfoList * list_all() const
Get a list of interfaces.
Mutex mutual exclusion lock.
virtual bool exists_writer(const Interface *interface) const
Check if a writer exists for the given interface.
BlackBoard interface manager.