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>
34 class FawkesNetworkClient;
35 class FawkesNetworkMessage;
37 class BlackBoardNotifier;
57 unsigned int serial()
const;
58 unsigned int clid()
const;
75 return ((instance_serial_ << 16) | next_msg_id_++);
89 unsigned short instance_serial_;
90 unsigned short next_msg_id_;
91 unsigned int num_readers_;
Interface proxy for remote BlackBoard.
virtual void transmit(Message *message)
Transmit message.
Interface * interface() const
Get instance serial of interface.
void process_data_changed(FawkesNetworkMessage *msg)
Process MSG_BB_DATA_CHANGED message.
void process_interface_message(FawkesNetworkMessage *msg)
Process MSG_BB_INTERFACE message.
unsigned int clid() const
Get client ID of assigned client.
virtual void notify_of_data_change(const Interface *interface)
Notify of data change.
~BlackBoardInterfaceProxy()
Destructor.
void reader_added(unsigned int event_serial)
Reader has been added.
virtual bool exists_writer(const Interface *interface) const
Check if a writer exists for the given interface.
void writer_removed(unsigned int event_serial)
Writer has been removed.
void writer_added(unsigned int event_serial)
Writer has been added.
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.
unsigned int serial() const
Get instance serial of interface.
virtual std::string writer(const Interface *interface) const
Get writer of interface.
void reader_removed(unsigned int event_serial)
Reader 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.
Fawkes library namespace.