24#ifndef _BLACKBOARD_INTERFACE_PROXY_H_
25#define _BLACKBOARD_INTERFACE_PROXY_H_
27#include <interface/mediators/interface_mediator.h>
28#include <interface/mediators/message_mediator.h>
29#include <utils/uuid.h>
35class FawkesNetworkClient;
36class FawkesNetworkMessage;
38class BlackBoardNotifier;
76 return next_msg_id_++;
90 Uuid instance_serial_;
91 unsigned short next_msg_id_;
92 unsigned int num_readers_;
Interface proxy for remote BlackBoard.
virtual void transmit(Message *message)
Transmit message.
Uuid clid() const
Get client ID of assigned client.
Interface * interface() const
Get instance serial of interface.
void process_interface_message(FawkesNetworkMessage *msg)
Process MSG_BB_INTERFACE message.
~BlackBoardInterfaceProxy()
Destructor.
virtual bool exists_writer(const Interface *interface) const
Check if a writer exists for the given interface.
void reader_removed(Uuid event_serial)
Reader has been removed.
void reader_added(Uuid event_serial)
Reader has been added.
Uuid serial() const
Get instance serial of interface.
void process_data_refreshed(FawkesNetworkMessage *msg)
Process MSG_BB_DATA_CHANGED/REFRESHED message.
virtual void notify_of_data_refresh(const Interface *interface, bool has_changed)
Notify of data change.
virtual unsigned int num_readers(const Interface *interface) const
Get number of readers.
BlackBoardInterfaceProxy(FawkesNetworkClient *client, FawkesNetworkMessage *msg, BlackBoardNotifier *notifier, Interface *interface, bool readwrite)
Constructor.
virtual std::list< std::string > readers(const Interface *interface) const
Get owners of interfaces who opened for reading.
virtual std::string writer(const Interface *interface) const
Get writer of interface.
void writer_added(Uuid event_serial)
Writer has been added.
void writer_removed(Uuid event_serial)
Writer has been removed.
Simple Fawkes network client.
Representation of a message that is sent over the network.
Base class for all Fawkes BlackBoard interfaces.
Base class for all messages passed through interfaces in Fawkes BlackBoard.
Read/write lock with reference counting.
A convenience class for universally unique identifiers (UUIDs).
Fawkes library namespace.