Fawkes API
Fawkes Development Version
|
Fawkes Configuration Network Handler. More...
#include <>>
Public Member Functions | |
ConfigNetworkHandler (Configuration *config, FawkesNetworkHub *hub) | |
Constructor. More... | |
~ConfigNetworkHandler () | |
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... | |
virtual void | config_tag_changed (const char *new_location) |
Tag changed. More... | |
virtual void | config_value_changed (const Configuration::ValueIterator *v) |
Called whenever a watched value has changed. More... | |
virtual void | config_comment_changed (const Configuration::ValueIterator *v) |
Called whenever a comment of a watched value has changed. More... | |
virtual void | config_value_erased (const char *path) |
Called whenever a value has been erased from the config. More... | |
![]() | |
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... | |
void | notify_of_failed_init () |
Notify of failed init. More... | |
![]() | |
FawkesNetworkHandler (unsigned short int id) | |
Constructor. More... | |
virtual | ~FawkesNetworkHandler () |
Destructor. More... | |
unsigned short int | id () const |
Get the component ID for this handler. More... | |
![]() | |
ConfigurationChangeHandler (const char *path_prefix) | |
Constructor. More... | |
virtual | ~ConfigurationChangeHandler () |
Destructor. More... | |
const char * | config_monitor_prefix () |
Which path prefix shall be monitored. More... | |
Protected Member Functions | |
virtual void | run () |
Stub to see name in backtrace for easier debugging. More... | |
![]() | |
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 | |
![]() | |
enum | OpMode { OPMODE_CONTINUOUS, OPMODE_WAITFORWAKEUP } |
Thread operation mode. More... | |
enum | CancelState { CANCEL_ENABLED, CANCEL_DISABLED } |
Cancel state. More... | |
![]() | |
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 const unsigned int | FLAG_BAD = 0x00000001 |
Standard thread flag: "thread is bad". More... | |
![]() | |
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... | |
Fawkes Configuration Network Handler.
It provides access to a given config via the network. This is mainly used to allow modification of config values over the network.
Definition at line 47 of file net_handler.h.
fawkes::ConfigNetworkHandler::ConfigNetworkHandler | ( | Configuration * | config, |
FawkesNetworkHub * | hub | ||
) |
Constructor.
config | configuration, loaded and ready to be used for getting and setting values |
hub | Fawkes network hub to use for receiving and sending network messages |
Definition at line 52 of file net_handler.cpp.
References fawkes::Configuration::add_change_handler(), fawkes::FawkesNetworkHub::add_handler(), and fawkes::Thread::start().
fawkes::ConfigNetworkHandler::~ConfigNetworkHandler | ( | ) |
Destructor.
Definition at line 69 of file net_handler.cpp.
References fawkes::Thread::cancel(), fawkes::LockQueue< Type >::clear(), fawkes::Configuration::ValueIterator::get_bool(), fawkes::Configuration::ValueIterator::get_bools(), fawkes::Configuration::ValueIterator::get_float(), fawkes::Configuration::ValueIterator::get_floats(), fawkes::Configuration::ValueIterator::get_int(), fawkes::Configuration::ValueIterator::get_ints(), fawkes::Configuration::ValueIterator::get_list_size(), fawkes::Configuration::ValueIterator::get_string(), fawkes::Configuration::ValueIterator::get_strings(), fawkes::Configuration::ValueIterator::get_uint(), fawkes::Configuration::ValueIterator::get_uints(), fawkes::Configuration::ValueIterator::is_bool(), fawkes::config_descriptor_t::is_default, fawkes::Configuration::ValueIterator::is_default(), fawkes::Configuration::ValueIterator::is_float(), fawkes::Configuration::ValueIterator::is_int(), fawkes::Configuration::ValueIterator::is_list(), fawkes::Configuration::ValueIterator::is_string(), fawkes::Configuration::ValueIterator::is_uint(), fawkes::Thread::join(), fawkes::LibLogger::log_warn(), fawkes::config_descriptor_t::num_values, fawkes::Configuration::ValueIterator::path(), fawkes::config_descriptor_t::path, fawkes::Configuration::rem_change_handler(), fawkes::FawkesNetworkHub::remove_handler(), fawkes::config_string_value_t::s_length, and fawkes::FawkesNetworkHub::send().
|
virtual |
Client connected.
Ignored.
clid | client ID |
Implements fawkes::FawkesNetworkHandler.
Definition at line 533 of file net_handler.cpp.
|
virtual |
Client disconnected.
If the client was a subscriber it is removed.
clid | client ID |
Implements fawkes::FawkesNetworkHandler.
Definition at line 543 of file net_handler.cpp.
References fawkes::LockList< Type >::lock(), fawkes::LibLogger::log_warn(), and fawkes::LockList< Type >::unlock().
|
virtual |
Called whenever a comment of a watched value has changed.
v | value iterator for the specific value |
Implements fawkes::ConfigurationChangeHandler.
Definition at line 587 of file net_handler.cpp.
|
virtual |
Tag changed.
Ignored.
new_tag | new tag |
Implements fawkes::ConfigurationChangeHandler.
Definition at line 561 of file net_handler.cpp.
|
virtual |
Called whenever a watched value has changed.
v | value iterator for the specific value |
Implements fawkes::ConfigurationChangeHandler.
Definition at line 567 of file net_handler.cpp.
References fawkes::LockList< Type >::lock(), fawkes::LibLogger::log_warn(), fawkes::Configuration::ValueIterator::path(), and fawkes::LockList< Type >::unlock().
|
virtual |
Called whenever a value has been erased from the config.
path | path of value |
Implements fawkes::ConfigurationChangeHandler.
Definition at line 593 of file net_handler.cpp.
References fawkes::LockList< Type >::lock(), fawkes::LibLogger::log_warn(), fawkes::FawkesNetworkHub::send(), and fawkes::LockList< Type >::unlock().
|
virtual |
Handle network message.
The message is put into the inbound queue and processed in processAfterLoop().
msg | message |
Implements fawkes::FawkesNetworkHandler.
Definition at line 520 of file net_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 239 of file net_handler.cpp.
References fawkes::ConfigListContent::append(), fawkes::Exception::append(), fawkes::FawkesNetworkMessage::clid(), fawkes::config_getval_msg_t::cp, fawkes::config_erase_value_msg_t::cp, fawkes::Configuration::erase(), fawkes::Configuration::erase_default(), fawkes::Configuration::get_value(), fawkes::config_descriptor_t::is_default, fawkes::Configuration::ValueIterator::is_default(), fawkes::Configuration::iterator(), fawkes::Configuration::lock(), fawkes::LibLogger::log_warn(), fawkes::FawkesNetworkMessage::msg(), fawkes::FawkesNetworkMessage::msgid(), fawkes::Configuration::ValueIterator::next(), fawkes::config_descriptor_t::num_values, fawkes::config_descriptor_t::path, fawkes::FawkesNetworkMessage::payload(), fawkes::FawkesNetworkMessage::payload_size(), fawkes::LockQueue< Type >::pop_locked(), fawkes::LockList< Type >::push_back_locked(), fawkes::config_string_value_t::s_length, fawkes::FawkesNetworkHub::send(), fawkes::Configuration::set_bool(), fawkes::Configuration::set_bools(), fawkes::Configuration::set_default_bool(), fawkes::Configuration::set_default_float(), fawkes::Configuration::set_default_int(), fawkes::Configuration::set_default_string(), fawkes::Configuration::set_default_uint(), fawkes::Configuration::set_float(), fawkes::Configuration::set_floats(), fawkes::Configuration::set_int(), fawkes::Configuration::set_ints(), fawkes::Configuration::set_string(), fawkes::Configuration::set_strings(), fawkes::Configuration::set_uint(), fawkes::Configuration::set_uints(), fawkes::Configuration::unlock(), and fawkes::RefCount::unref().
|
inlineprotectedvirtual |
Stub to see name in backtrace for easier debugging.
Reimplemented from fawkes::Thread.
Definition at line 69 of file net_handler.h.
References fawkes::config_descriptor_t::is_default, fawkes::config_descriptor_t::num_values, fawkes::config_descriptor_t::path, and fawkes::Thread::run().