|
Fawkes API
Fawkes Development Version
|
BlackBoard Network Handler. More...
#include <>>

Public Member Functions | |
| BlackBoardNetworkHandler (BlackBoard *blackboard, FawkesNetworkHub *hub) | |
| Constructor. More... | |
| ~BlackBoardNetworkHandler () | |
| Destructor. More... | |
| virtual void | handle_network_message (FawkesNetworkMessage *msg) |
| Handle network message. More... | |
| virtual void | client_connected (unsigned int clid) |
| Client connected. More... | |
| virtual void | client_disconnected (unsigned int clid) |
| Client disconnected. More... | |
| virtual void | loop () |
| Process all network messages that have been received. More... | |
Public Member Functions inherited from fawkes::Thread | |
| virtual | ~Thread () |
| Virtual destructor. More... | |
| virtual void | init () |
| Initialize the thread. More... | |
| bool | prepare_finalize () |
| Prepare finalization. More... | |
| virtual bool | prepare_finalize_user () |
| Prepare finalization user implementation. More... | |
| virtual void | finalize () |
| Finalize the thread. More... | |
| void | cancel_finalize () |
| Cancel finalization. More... | |
| void | start (bool wait=true) |
| Call this method to start the thread. More... | |
| void | cancel () |
| Cancel a thread. More... | |
| void | join () |
| Join the thread. More... | |
| void | detach () |
| Detach the thread. More... | |
| void | kill (int sig) |
| Send signal to a thread. More... | |
| bool | operator== (const Thread &thread) |
| Check if two threads are the same. More... | |
| void | wakeup () |
| Wake up thread. More... | |
| void | wakeup (Barrier *barrier) |
| Wake up thread and wait for barrier afterwards. More... | |
| void | wait_loop_done () |
| Wait for the current loop iteration to finish. More... | |
| OpMode | opmode () const |
| Get operation mode. More... | |
| pthread_t | thread_id () const |
| Get ID of thread. More... | |
| bool | started () const |
| Check if thread has been started. More... | |
| bool | cancelled () const |
| Check if thread has been cancelled. More... | |
| bool | detached () const |
| Check if thread has been detached. More... | |
| bool | running () const |
| Check if the thread is running. More... | |
| bool | waiting () const |
| Check if thread is currently waiting for wakeup. More... | |
| const char * | name () const |
| Get name of thread. More... | |
| void | set_flags (uint32_t flags) |
| Set all flags in one go. More... | |
| void | set_flag (uint32_t flag) |
| Set flag for the thread. More... | |
| void | unset_flag (uint32_t flag) |
| Unset flag. More... | |
| bool | flagged_bad () const |
| Check if FLAG_BAD was set. More... | |
| void | set_delete_on_exit (bool del) |
| Set whether the thread should be deleted on exit. More... | |
| void | set_prepfin_hold (bool hold) |
| Hold prepare_finalize(). More... | |
| void | add_notification_listener (ThreadNotificationListener *notification_listener) |
| Add notification listener. More... | |
| void | remove_notification_listener (ThreadNotificationListener *notification_listener) |
| Remove notification listener. More... | |
Public Member Functions inherited from fawkes::FawkesNetworkHandler | |
| FawkesNetworkHandler (unsigned short int id) | |
| Constructor. More... | |
| virtual | ~FawkesNetworkHandler () |
| Destructor. More... | |
| unsigned short int | id () const |
| Get the component ID for this handler. More... | |
Protected Member Functions | |
| virtual void | run () |
| Stub to see name in backtrace for easier debugging. More... | |
Protected Member Functions inherited from fawkes::Thread | |
| Thread (const char *name) | |
| Constructor. More... | |
| Thread (const char *name, OpMode op_mode) | |
| Constructor. More... | |
| void | exit () |
| Exit the thread. More... | |
| void | test_cancel () |
| Set cancellation point. More... | |
| void | yield () |
| Yield the processor to another thread or process. More... | |
| void | set_opmode (OpMode op_mode) |
| Set operation mode. More... | |
| void | set_prepfin_conc_loop (bool concurrent=true) |
| Set concurrent execution of prepare_finalize() and loop(). More... | |
| void | set_coalesce_wakeups (bool coalesce=true) |
| Set wakeup coalescing. More... | |
| void | set_name (const char *format,...) |
| Set name of thread. More... | |
| virtual void | once () |
| Execute an action exactly once. More... | |
| bool | wakeup_pending () |
| Check if wakeups are pending. More... | |
Additional Inherited Members | |
Public Types inherited from fawkes::Thread | |
| enum | OpMode { OPMODE_CONTINUOUS, OPMODE_WAITFORWAKEUP } |
| Thread operation mode. More... | |
| enum | CancelState { CANCEL_ENABLED, CANCEL_DISABLED } |
| Cancel state. More... | |
Static Public Member Functions inherited from fawkes::Thread | |
| static Thread * | current_thread () |
| Get the Thread instance of the currently running thread. More... | |
| static Thread * | current_thread_noexc () throw () |
| Similar to current_thread, but does never throw an exception. More... | |
| static pthread_t | current_thread_id () |
| Get the ID of the currently running thread. More... | |
| static void | init_main () |
| Initialize Thread wrapper instance for main thread. More... | |
| static void | destroy_main () |
| Destroy main thread wrapper instance. More... | |
| static void | set_cancel_state (CancelState new_state, CancelState *old_state=0) |
| Set the cancel state of the current thread. More... | |
Static Public Attributes inherited from fawkes::Thread | |
| static const unsigned int | FLAG_BAD = 0x00000001 |
| Standard thread flag: "thread is bad". More... | |
Protected Attributes inherited from fawkes::Thread | |
| bool | finalize_prepared |
| True if prepare_finalize() has been called and was not stopped with a cancel_finalize(), false otherwise. More... | |
| Mutex * | loop_mutex |
| Mutex that is used to protect a call to loop(). More... | |
| Mutex * | loopinterrupt_antistarve_mutex |
| Mutex to avoid starvation when trying to lock loop_mutex. More... | |
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::LockQueue< Type >::clear(), fawkes::BlackBoard::close(), and fawkes::FawkesNetworkHub::remove_handler().
|
virtual |
Client connected.
Ignored.
| clid | client ID |
Implements fawkes::FawkesNetworkHandler.
Definition at line 395 of file handler.cpp.
|
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::BlackBoard::close(), and fawkes::LibLogger::log_debug().
|
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::LockQueue< Type >::push_locked(), fawkes::RefCount::ref(), and fawkes::Thread::wakeup().
|
virtual |
Process all network messages that have been received.
Reimplemented from fawkes::Thread.
Definition at line 88 of file handler.cpp.
References fawkes::BlackBoardInterfaceListContent::append_interface(), fawkes::BB_ERR_HASH_MISMATCH, fawkes::BB_ERR_UNKNOWN_ERR, fawkes::BB_ERR_UNKNOWN_TYPE, fawkes::BB_ERR_WRITER_EXISTS, fawkes::FawkesNetworkMessage::clid(), fawkes::BlackBoard::close(), fawkes::bb_idata_msg_t::data_size, fawkes::bb_imessage_msg_t::data_size, fawkes::Interface::datachunk(), fawkes::Message::datasize(), fawkes::Interface::datasize(), fawkes::bb_iopenfail_msg_t::error_code, fawkes::Interface::has_writer(), fawkes::bb_iopen_msg_t::hash, fawkes::Interface::hash(), fawkes::bb_imessage_msg_t::hops, fawkes::bb_iopen_msg_t::id, fawkes::bb_ilistreq_msg_t::id_pattern, fawkes::Interface::is_writer(), fawkes::BlackBoard::list(), fawkes::BlackBoard::list_all(), fawkes::LibLogger::log_debug(), fawkes::LibLogger::log_error(), fawkes::LibLogger::log_warn(), fawkes::FawkesNetworkMessage::msg(), fawkes::bb_imessage_msg_t::msg_type, fawkes::FawkesNetworkMessage::msgid(), fawkes::bb_imessage_msg_t::msgid, fawkes::Interface::num_readers(), fawkes::BlackBoard::open_for_reading(), fawkes::BlackBoard::open_for_writing(), fawkes::FawkesNetworkMessage::payload(), fawkes::LockQueue< Type >::pop_locked(), fawkes::Interface::read(), fawkes::FawkesNetworkHub::send(), fawkes::Interface::serial(), fawkes::bb_iserial_msg_t::serial, fawkes::bb_iopensucc_msg_t::serial, fawkes::bb_idata_msg_t::serial, fawkes::bb_imessage_msg_t::serial, fawkes::Message::set_from_chunk(), fawkes::Message::set_hops(), fawkes::Message::set_id(), fawkes::bb_iopen_msg_t::type, fawkes::bb_ilistreq_msg_t::type_pattern, and fawkes::RefCount::unref().
|
inlineprotectedvirtual |
Stub to see name in backtrace for easier debugging.
Reimplemented from fawkes::Thread.
Definition at line 61 of file handler.h.
References fawkes::Thread::run().