#include <blackboard/net/handler.h>
Inheritance diagram for fawkes::BlackBoardNetworkHandler:
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. |
This class provides a network handler that can be registered with the FawkesServerThread to handle client requests to a BlackBoard instance.
Definition at line 41 of file handler.h.
fawkes::BlackBoardNetworkHandler::BlackBoardNetworkHandler | ( | BlackBoard * | blackboard, | |
FawkesNetworkHub * | hub | |||
) |
Constructor.
blackboard | BlackBoard instance to provide network access to | |
hub | Fawkes network hub |
Definition at line 56 of file handler.cpp.
References fawkes::FawkesNetworkHub::add_handler().
fawkes::BlackBoardNetworkHandler::~BlackBoardNetworkHandler | ( | ) |
Destructor.
Definition at line 68 of file handler.cpp.
References fawkes::BlackBoard::close(), and fawkes::FawkesNetworkHub::remove_handler().
void fawkes::BlackBoardNetworkHandler::client_connected | ( | unsigned int | clid | ) | [virtual] |
Client connected.
Ignored.
clid | client ID |
Implements fawkes::FawkesNetworkHandler.
Definition at line 351 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 361 of file handler.cpp.
References fawkes::BlackBoard::close(), and fawkes::LibLogger::log_debug().
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 339 of file handler.cpp.
References fawkes::RefCount::ref(), and fawkes::Thread::wakeup().
void fawkes::BlackBoardNetworkHandler::loop | ( | ) | [virtual] |
Process all network messages that have been received.
Reimplemented from fawkes::Thread.
Definition at line 84 of file handler.cpp.
References fawkes::BB_ERR_HASH_MISMATCH, fawkes::BB_ERR_UNKNOWN_ERR, fawkes::BB_ERR_UNKNOWN_TYPE, fawkes::BB_ERR_WRITER_EXISTS, fawkes::BlackBoard::close(), fawkes::bb_imessage_msg_t::data_size, fawkes::bb_idata_msg_t::data_size, fawkes::Message::datasize(), fawkes::bb_iopen_msg_t::hash, fawkes::Interface::hash(), fawkes::bb_imessage_msg_t::hops, fawkes::bb_iopen_msg_t::id, fawkes::BlackBoard::list_all(), fawkes::LibLogger::log_debug(), fawkes::LibLogger::log_error(), fawkes::LibLogger::log_warn(), fawkes::bb_imessage_msg_t::msg_type, fawkes::bb_imessage_msg_t::msgid, fawkes::BlackBoard::open_for_reading(), fawkes::BlackBoard::open_for_writing(), fawkes::FawkesNetworkHub::send(), fawkes::bb_imessage_msg_t::serial, fawkes::bb_idata_msg_t::serial, fawkes::bb_iserial_msg_t::serial, fawkes::Interface::serial(), fawkes::Message::set_from_chunk(), fawkes::Message::set_hops(), fawkes::Message::set_id(), and fawkes::bb_iopen_msg_t::type.
virtual void fawkes::BlackBoardNetworkHandler::run | ( | ) | [inline, protected, virtual] |
Stub to see name in backtrace for easier debugging.
Reimplemented from fawkes::Thread.
Definition at line 57 of file handler.h.
References fawkes::Thread::run().