fawkes::BlackBoardInterfaceProxy Class Reference
Interface proxy for remote BlackBoard. More...
#include <blackboard/net/interface_proxy.h>

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. | |
Detailed Description
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.
Definition at line 39 of file interface_proxy.h.
Constructor & Destructor Documentation
| fawkes::BlackBoardInterfaceProxy::BlackBoardInterfaceProxy | ( | FawkesNetworkClient * | client, | |
| FawkesNetworkMessage * | msg, | |||
| BlackBoardNotifier * | notifier, | |||
| Interface * | interface, | |||
| bool | writer | |||
| ) |
Constructor.
- Parameters:
-
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::clid(), fawkes::bb_iopensucc_msg_t::data_size, fawkes::Interface::datasize(), fawkes::interface_header_t::flag_writer_active, fawkes::bb_iopensucc_msg_t::has_writer, fawkes::Interface::hash(), fawkes::interface_header_t::hash, fawkes::Interface::id(), fawkes::interface_header_t::id, fawkes::FawkesNetworkMessage::msgid(), fawkes::interface_header_t::num_readers, fawkes::bb_iopensucc_msg_t::num_readers, fawkes::FawkesNetworkMessage::payload(), fawkes::interface_header_t::refcount, fawkes::bb_iopensucc_msg_t::serial, fawkes::Interface::type(), and fawkes::interface_header_t::type.
| fawkes::BlackBoardInterfaceProxy::~BlackBoardInterfaceProxy | ( | ) |
Member Function Documentation
| unsigned int fawkes::BlackBoardInterfaceProxy::clid | ( | ) | const |
Get client ID of assigned client.
- Returns:
- client ID
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.
- Parameters:
-
interface interface to check
- Returns:
- true, if there is any writer for the given interface, false otherwise
Implements fawkes::InterfaceMediator.
Definition at line 273 of file interface_proxy.cpp.
| Interface * fawkes::BlackBoardInterfaceProxy::interface | ( | ) | const |
Get instance serial of interface.
- Returns:
- instance serial
Definition at line 265 of file interface_proxy.cpp.
| 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.
- Parameters:
-
interface interface whose subscribers to notify
- See also:
- Interface::write()
Implements fawkes::InterfaceMediator.
Definition at line 285 of file interface_proxy.cpp.
References fawkes::bb_idata_msg_t::data_size, fawkes::Interface::datachunk(), fawkes::Interface::datasize(), fawkes::FawkesNetworkClient::enqueue(), fawkes::Interface::serial(), and fawkes::bb_idata_msg_t::serial.
| 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.
- Parameters:
-
interface interface to check
- Returns:
- number of readers currently registered for the given interface.
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.
- Parameters:
-
msg message to process.
Definition at line 115 of file interface_proxy.cpp.
References fawkes::bb_idata_msg_t::data_size, fawkes::LibLogger::log_error(), fawkes::FawkesNetworkMessage::msgid(), fawkes::BlackBoardNotifier::notify_of_data_change(), fawkes::FawkesNetworkMessage::payload(), and fawkes::bb_idata_msg_t::serial.
| void fawkes::BlackBoardInterfaceProxy::process_interface_message | ( | FawkesNetworkMessage * | msg | ) |
Process MSG_BB_INTERFACE message.
- Parameters:
-
msg message to process.
Definition at line 147 of file interface_proxy.cpp.
References fawkes::Exception::append(), fawkes::Interface::create_message(), fawkes::bb_imessage_msg_t::data_size, fawkes::Message::datasize(), fawkes::Message::hops(), fawkes::bb_imessage_msg_t::hops, fawkes::Interface::is_writer(), fawkes::LibLogger::log_error(), fawkes::LibLogger::log_warn(), fawkes::bb_imessage_msg_t::msg_type, fawkes::bb_imessage_msg_t::msgid, fawkes::FawkesNetworkMessage::msgid(), fawkes::BlackBoardNotifier::notify_of_message_received(), fawkes::FawkesNetworkMessage::payload(), fawkes::bb_imessage_msg_t::serial, fawkes::Message::set_from_chunk(), fawkes::Message::set_hops(), fawkes::Message::set_id(), fawkes::Message::type(), and fawkes::Interface::uid().
| void fawkes::BlackBoardInterfaceProxy::reader_added | ( | unsigned int | event_serial | ) |
Reader has been added.
- Parameters:
-
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.
- Parameters:
-
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.
- Returns:
- instance serial
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.
- Parameters:
-
message message to transmit.
- Exceptions:
-
BlackBoardNoWritingInstanceException thrown if there is no writing instance for the transmitting interface
Implements fawkes::MessageMediator.
Definition at line 306 of file interface_proxy.cpp.
References fawkes::bb_imessage_msg_t::data_size, fawkes::Message::datachunk(), fawkes::Message::datasize(), fawkes::FawkesNetworkClient::enqueue(), fawkes::Message::hops(), fawkes::bb_imessage_msg_t::hops, fawkes::bb_imessage_msg_t::msg_type, fawkes::bb_imessage_msg_t::msgid, fawkes::Interface::serial(), fawkes::bb_imessage_msg_t::serial, fawkes::Message::set_id(), and fawkes::Message::type().
| void fawkes::BlackBoardInterfaceProxy::writer_added | ( | unsigned int | event_serial | ) |
Writer has been added.
- Parameters:
-
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.
- Parameters:
-
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().
The documentation for this class was generated from the following files:
- src/libs/blackboard/net/interface_proxy.h
- src/libs/blackboard/net/interface_proxy.cpp

