23#ifndef _BLACKBOARD_REMOTE_H_
24#define _BLACKBOARD_REMOTE_H_
26#include <blackboard/blackboard.h>
27#include <core/exceptions/software.h>
28#include <core/utils/lock_map.h>
29#include <netcomm/fawkes/client_handler.h>
30#include <utils/uuid.h>
36class FawkesNetworkClient;
37class FawkesNetworkMessage;
41class InterfaceInfoList;
43class BlackBoardInstanceFactory;
44class BlackBoardNotifier;
45class BlackBoardInterfaceProxy;
46class BlackBoardInterfaceListener;
47class BlackBoardInterfaceObserver;
57 open_for_reading(
const char *interface_type,
const char *identifier,
const char *owner = NULL);
59 open_for_writing(
const char *interface_type,
const char *identifier,
const char *owner = NULL);
64 virtual bool is_alive()
const noexcept;
68 const char *id_pattern =
"*",
69 const char *owner = NULL);
80 void open_interface(
const char *type,
81 const char *identifier,
86 open_interface(
const char *type,
const char *identifier,
const char *owner,
bool writer);
87 void reopen_interfaces();
97 std::list<BlackBoardInterfaceProxy *> invalid_proxies_;
98 std::list<BlackBoardInterfaceProxy *>::iterator ipit_;
103 const char *inbound_thread_;
BlackBoard instance factory.
The BlackBoard abstract class.
Message handler for FawkesNetworkClient.
Simple Fawkes network client.
Representation of a message that is sent over the network.
Interface information list.
Base class for all Fawkes BlackBoard interfaces.
Mutex mutual exclusion lock.
virtual bool try_aliveness_restore() noexcept
Try to restore the aliveness of the BlackBoard instance.
virtual Interface * open_for_reading(const char *interface_type, const char *identifier, const char *owner=NULL)
Open interface for reading.
virtual ~RemoteBlackBoard()
Destructor.
virtual InterfaceInfoList * list_all()
Get list of all currently existing interfaces.
virtual InterfaceInfoList * list(const char *type_pattern, const char *id_pattern)
Get list of interfaces matching type and ID patterns.
std::list< Interface * > open_multiple_for_reading(const char *interface_type, const char *id_pattern="*", const char *owner=NULL)
Open multiple interfaces for reading.
virtual void connection_died(unsigned int id) noexcept
Client connection died.
virtual void deregistered(unsigned int id) noexcept
We are no longer registered in Fawkes network client.
virtual Interface * open_for_writing(const char *interface_type, const char *identifier, const char *owner=NULL)
Open interface for writing.
virtual void connection_established(unsigned int id) noexcept
Client has established a connection.
virtual bool is_alive() const noexcept
Check if the BlackBoard is still alive.
virtual void close(Interface *interface)
Close interface.
virtual void inbound_received(FawkesNetworkMessage *msg, unsigned int id) noexcept
Called for incoming messages.
RemoteBlackBoard(FawkesNetworkClient *client)
Constructor.
Wait until a given condition holds.
Fawkes library namespace.