|
Fawkes API
Fawkes Development Version
|
Interface proxy for remote BlackBoard. More...
#include <>>

Public Member Functions | |
| BlackBoardInterfaceProxy (FawkesNetworkClient *client, FawkesNetworkMessage *msg, BlackBoardNotifier *notifier, Interface *interface, bool readwrite) | |
| Constructor. | |
| ~BlackBoardInterfaceProxy () | |
| Destructor. | |
| void | process_data_changed (FawkesNetworkMessage *msg) |
| Process MSG_BB_DATA_CHANGED message. | |
| void | process_interface_message (FawkesNetworkMessage *msg) |
| Process MSG_BB_INTERFACE message. | |
| void | reader_added (unsigned int event_serial) |
| Reader has been added. | |
| void | reader_removed (unsigned int event_serial) |
| Reader has been removed. | |
| void | writer_added (unsigned int event_serial) |
| Writer has been added. | |
| void | writer_removed (unsigned int event_serial) |
| Writer has been removed. | |
| unsigned int | serial () const |
| Get instance serial of interface. | |
| unsigned int | clid () const |
| Get client ID of assigned client. | |
| Interface * | interface () const |
| Get instance serial of interface. | |
| virtual bool | exists_writer (const Interface *interface) const |
| Check if a writer exists for the given interface. | |
| virtual unsigned int | num_readers (const Interface *interface) const |
| Get number of readers. | |
| virtual void | notify_of_data_change (const Interface *interface) |
| Notify of data change. | |
| virtual void | transmit (Message *message) |
| Transmit message. | |
Interface proxy for remote BlackBoard.
This proxy is used internally by RemoteBlackBoard to interact with an interface on the one side and the remote BlackBoard on the other side.
| fawkes::BlackBoardInterfaceProxy::BlackBoardInterfaceProxy | ( | FawkesNetworkClient * | client, |
| FawkesNetworkMessage * | msg, | ||
| BlackBoardNotifier * | notifier, | ||
| Interface * | interface, | ||
| bool | writer | ||
| ) |
Constructor.
| client | Fawkes network client |
| msg | must be a MSG_BB_OPEN_SUCCESS message describing the interface in question |
| notifier | BlackBoard notifier to use to notify of interface events |
| interface | interface instance of the correct type, will be initialized in this ctor and can be used afterwards. |
| writer | true to make this a writing instance, false otherwise |
Definition at line 56 of file interface_proxy.cpp.
References fawkes::FawkesNetworkMessage::msgid(), fawkes::FawkesNetworkMessage::payload(), interface(), fawkes::bb_iopensucc_msg_t::serial, fawkes::bb_iopensucc_msg_t::has_writer, fawkes::bb_iopensucc_msg_t::num_readers, fawkes::bb_iopensucc_msg_t::data_size, fawkes::FawkesNetworkMessage::clid(), fawkes::Interface::datasize(), fawkes::interface_header_t::type, fawkes::Interface::type(), fawkes::interface_header_t::id, fawkes::Interface::id(), fawkes::interface_header_t::hash, fawkes::Interface::hash(), fawkes::interface_header_t::flag_writer_active, fawkes::interface_header_t::num_readers, and fawkes::interface_header_t::refcount.
| fawkes::BlackBoardInterfaceProxy::~BlackBoardInterfaceProxy | ( | ) |
Destructor.
Definition at line 105 of file interface_proxy.cpp.
| unsigned int fawkes::BlackBoardInterfaceProxy::clid | ( | ) | const |
Get client ID of assigned client.
Definition at line 256 of file interface_proxy.cpp.
| bool fawkes::BlackBoardInterfaceProxy::exists_writer | ( | const Interface * | interface | ) | const [virtual] |
Check if a writer exists for the given interface.
| interface | interface to check |
Implements fawkes::InterfaceMediator.
Definition at line 273 of file interface_proxy.cpp.
| Interface * fawkes::BlackBoardInterfaceProxy::interface | ( | ) | const |
Get instance serial of interface.
Definition at line 265 of file interface_proxy.cpp.
Referenced by BlackBoardInterfaceProxy().
| void fawkes::BlackBoardInterfaceProxy::notify_of_data_change | ( | const Interface * | interface | ) | [virtual] |
Notify of data change.
Notify all subscribers of the given interface of a data change. This also influences logging and sending data over the network so it is mandatory to call this function! The interface base class write method does that for you.
| interface | interface whose subscribers to notify |
Implements fawkes::InterfaceMediator.
Definition at line 285 of file interface_proxy.cpp.
References fawkes::Interface::datasize(), fawkes::bb_idata_msg_t::serial, fawkes::Interface::serial(), fawkes::bb_idata_msg_t::data_size, fawkes::Interface::datachunk(), and fawkes::FawkesNetworkClient::enqueue().
| unsigned int fawkes::BlackBoardInterfaceProxy::num_readers | ( | const Interface * | interface | ) | const [virtual] |
Get number of readers.
Get the number of readers that the given interface has.
| interface | interface to check |
Implements fawkes::InterfaceMediator.
Definition at line 279 of file interface_proxy.cpp.
| void fawkes::BlackBoardInterfaceProxy::process_data_changed | ( | FawkesNetworkMessage * | msg | ) |
Process MSG_BB_DATA_CHANGED message.
| msg | message to process. |
Definition at line 115 of file interface_proxy.cpp.
References fawkes::FawkesNetworkMessage::msgid(), fawkes::LibLogger::log_error(), fawkes::FawkesNetworkMessage::payload(), fawkes::bb_idata_msg_t::serial, fawkes::bb_idata_msg_t::data_size, and fawkes::BlackBoardNotifier::notify_of_data_change().
| void fawkes::BlackBoardInterfaceProxy::process_interface_message | ( | FawkesNetworkMessage * | msg | ) |
Process MSG_BB_INTERFACE message.
| msg | message to process. |
Definition at line 147 of file interface_proxy.cpp.
References fawkes::FawkesNetworkMessage::msgid(), fawkes::LibLogger::log_error(), fawkes::FawkesNetworkMessage::payload(), fawkes::bb_imessage_msg_t::serial, fawkes::Interface::is_writer(), fawkes::Interface::uid(), fawkes::Interface::create_message(), fawkes::bb_imessage_msg_t::msg_type, fawkes::Message::set_id(), fawkes::bb_imessage_msg_t::msgid, fawkes::Message::set_hops(), fawkes::bb_imessage_msg_t::hops, fawkes::Message::hops(), fawkes::LibLogger::log_warn(), fawkes::Message::type(), fawkes::bb_imessage_msg_t::data_size, fawkes::Message::datasize(), fawkes::Message::set_from_chunk(), fawkes::BlackBoardNotifier::notify_of_message_received(), and fawkes::Exception::append().
| void fawkes::BlackBoardInterfaceProxy::reader_added | ( | unsigned int | event_serial | ) |
Reader has been added.
| event_serial | instance serial of the interface that caused the event |
Definition at line 203 of file interface_proxy.cpp.
References fawkes::BlackBoardNotifier::notify_of_reader_added().
| void fawkes::BlackBoardInterfaceProxy::reader_removed | ( | unsigned int | event_serial | ) |
Reader has been removed.
| event_serial | instance serial of the interface that caused the event |
Definition at line 213 of file interface_proxy.cpp.
References fawkes::BlackBoardNotifier::notify_of_reader_removed().
| unsigned int fawkes::BlackBoardInterfaceProxy::serial | ( | ) | const |
Get instance serial of interface.
Definition at line 246 of file interface_proxy.cpp.
| void fawkes::BlackBoardInterfaceProxy::transmit | ( | Message * | message | ) | [virtual] |
Transmit message.
The mediator may modify the message ID of the message.
| message | message to transmit. |
| BlackBoardNoWritingInstanceException | thrown if there is no writing instance for the transmitting interface |
Implements fawkes::MessageMediator.
Definition at line 305 of file interface_proxy.cpp.
References fawkes::Message::datasize(), fawkes::bb_imessage_msg_t::serial, fawkes::Interface::serial(), fawkes::bb_imessage_msg_t::msgid, fawkes::bb_imessage_msg_t::hops, fawkes::Message::hops(), fawkes::Message::set_id(), fawkes::bb_imessage_msg_t::msg_type, fawkes::Message::type(), fawkes::bb_imessage_msg_t::data_size, fawkes::Message::datachunk(), and fawkes::FawkesNetworkClient::enqueue().
| void fawkes::BlackBoardInterfaceProxy::writer_added | ( | unsigned int | event_serial | ) |
Writer has been added.
| event_serial | instance serial of the interface that caused the event |
Definition at line 225 of file interface_proxy.cpp.
References fawkes::BlackBoardNotifier::notify_of_writer_added().
| void fawkes::BlackBoardInterfaceProxy::writer_removed | ( | unsigned int | event_serial | ) |
Writer has been removed.
| event_serial | instance serial of the interface that caused the event |
Definition at line 235 of file interface_proxy.cpp.
References fawkes::BlackBoardNotifier::notify_of_writer_removed().