Fawkes API
Fawkes Development Version
|
BlackBoard Network Handler. More...
#include <>>
Public Member Functions | |
BlackBoardNetworkHandler (BlackBoard *blackboard, FawkesNetworkHub *hub) | |
Constructor. | |
~BlackBoardNetworkHandler () | |
Destructor. | |
virtual void | handle_network_message (FawkesNetworkMessage *msg) |
Handle network message. | |
virtual void | client_connected (unsigned int clid) |
Client connected. | |
virtual void | client_disconnected (unsigned int clid) |
Client disconnected. | |
virtual void | loop () |
Process all network messages that have been received. | |
Protected Member Functions | |
virtual void | run () |
Stub to see name in backtrace for easier debugging. |
BlackBoard Network Handler.
This class provides a network handler that can be registered with the FawkesServerThread to handle client requests to a BlackBoard instance.
fawkes::BlackBoardNetworkHandler::BlackBoardNetworkHandler | ( | BlackBoard * | blackboard, |
FawkesNetworkHub * | hub | ||
) |
Constructor.
blackboard | BlackBoard instance to provide network access to |
hub | Fawkes network hub |
Definition at line 57 of file handler.cpp.
References fawkes::FawkesNetworkHub::add_handler().
fawkes::BlackBoardNetworkHandler::~BlackBoardNetworkHandler | ( | ) |
Destructor.
Definition at line 71 of file handler.cpp.
References fawkes::FawkesNetworkHub::remove_handler(), fawkes::LockQueue::clear(), and fawkes::BlackBoard::close().
void fawkes::BlackBoardNetworkHandler::client_connected | ( | unsigned int | clid | ) | [virtual] |
Client connected.
Ignored.
clid | client ID |
Implements fawkes::FawkesNetworkHandler.
Definition at line 395 of file handler.cpp.
void fawkes::BlackBoardNetworkHandler::client_disconnected | ( | unsigned int | clid | ) | [virtual] |
Client disconnected.
If the client had opened any interfaces these are closed.
clid | client ID |
Implements fawkes::FawkesNetworkHandler.
Definition at line 405 of file handler.cpp.
References fawkes::LockMap::lock(), fawkes::LibLogger::log_debug(), fawkes::LockMap::erase_locked(), fawkes::BlackBoard::close(), and fawkes::LockMap::unlock().
void fawkes::BlackBoardNetworkHandler::handle_network_message | ( | FawkesNetworkMessage * | msg | ) | [virtual] |
Handle network message.
The message is put into the inbound queue and processed in processAfterLoop().
msg | message |
Implements fawkes::FawkesNetworkHandler.
Definition at line 383 of file handler.cpp.
References fawkes::RefCount::ref(), fawkes::LockQueue::push_locked(), and fawkes::Thread::wakeup().
void fawkes::BlackBoardNetworkHandler::loop | ( | ) | [virtual] |
Process all network messages that have been received.
Reimplemented from fawkes::Thread.
Definition at line 88 of file handler.cpp.
References fawkes::FawkesNetworkMessage::clid(), fawkes::FawkesNetworkMessage::msgid(), fawkes::BlackBoard::list_all(), fawkes::BlackBoardInterfaceListContent::append_interface(), fawkes::FawkesNetworkHub::send(), fawkes::LibLogger::log_error(), fawkes::FawkesNetworkMessage::msg(), fawkes::bb_ilistreq_msg_t::type_pattern, fawkes::bb_ilistreq_msg_t::id_pattern, fawkes::BlackBoard::list(), fawkes::bb_iopen_msg_t::type, fawkes::bb_iopen_msg_t::id, fawkes::LibLogger::log_debug(), fawkes::BlackBoard::open_for_reading(), fawkes::BlackBoard::open_for_writing(), fawkes::Interface::hash(), fawkes::bb_iopen_msg_t::hash, fawkes::LibLogger::log_warn(), fawkes::BB_ERR_HASH_MISMATCH, fawkes::Interface::serial(), fawkes::BB_ERR_UNKNOWN_TYPE, fawkes::BB_ERR_WRITER_EXISTS, fawkes::BB_ERR_UNKNOWN_ERR, fawkes::bb_iserial_msg_t::serial, fawkes::LockMap::lock(), fawkes::LockMap::unlock(), fawkes::BlackBoard::close(), fawkes::FawkesNetworkMessage::payload(), fawkes::bb_idata_msg_t::serial, fawkes::bb_idata_msg_t::data_size, fawkes::bb_imessage_msg_t::serial, 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::bb_imessage_msg_t::data_size, fawkes::Message::datasize(), fawkes::Message::set_from_chunk(), fawkes::RefCount::unref(), and fawkes::LockQueue::pop_locked().
virtual void fawkes::BlackBoardNetworkHandler::run | ( | ) | [inline, protected, virtual] |
Stub to see name in backtrace for easier debugging.
Reimplemented from fawkes::Thread.