Fawkes API  Fawkes Development Version
fawkes::BlackBoardNetworkHandler Class Reference

BlackBoard Network Handler. More...

#include <>>

Inheritance diagram for fawkes::BlackBoardNetworkHandler:

List of all members.

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.

Detailed Description

BlackBoard Network Handler.

This class provides a network handler that can be registered with the FawkesServerThread to handle client requests to a BlackBoard instance.

Author:
Tim Niemueller

Constructor & Destructor Documentation

fawkes::BlackBoardNetworkHandler::BlackBoardNetworkHandler ( BlackBoard blackboard,
FawkesNetworkHub hub 
)

Constructor.

Parameters:
blackboardBlackBoard instance to provide network access to
hubFawkes network hub

Definition at line 57 of file handler.cpp.

References fawkes::FawkesNetworkHub::add_handler().

fawkes::BlackBoardNetworkHandler::~BlackBoardNetworkHandler ( )

Member Function Documentation

void fawkes::BlackBoardNetworkHandler::client_connected ( unsigned int  clid) [virtual]

Client connected.

Ignored.

Parameters:
clidclient 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.

Parameters:
clidclient 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().

Parameters:
msgmessage

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.

See also:
Thread::run()

Reimplemented from fawkes::Thread.

Definition at line 61 of file handler.h.


The documentation for this class was generated from the following files: