Fawkes API  Fawkes Development Version
fawkes::ConfigNetworkHandler Class Reference

Fawkes Configuration Network Handler. More...

#include <>>

Inheritance diagram for fawkes::ConfigNetworkHandler:

List of all members.

Public Member Functions

 ConfigNetworkHandler (Configuration *config, FawkesNetworkHub *hub)
 Constructor.
 ~ConfigNetworkHandler ()
 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.
virtual void config_tag_changed (const char *new_location)
 Tag changed.
virtual void config_value_changed (const char *path, bool is_default, int value)
 Called whenever an int value has changed.
virtual void config_value_changed (const char *path, bool is_default, unsigned int value)
 Called whenever an unsigned int value has changed.
virtual void config_value_changed (const char *path, bool is_default, float value)
 Called whenever an float value has changed.
virtual void config_value_changed (const char *path, bool is_default, bool value)
 Called whenever an boolean value has changed.
virtual void config_value_changed (const char *path, bool is_default, const char *value)
 Called whenever a string value has changed.
virtual void config_comment_changed (const char *path, bool is_default, const char *comment)
 Called whenever a comment has changed.
virtual void config_value_erased (const char *path, bool is_default)
 Called whenever a value has been erased from the config.

Protected Member Functions

virtual void run ()
 Stub to see name in backtrace for easier debugging.

Detailed Description

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.

Author:
Tim Niemueller

Constructor & Destructor Documentation

fawkes::ConfigNetworkHandler::ConfigNetworkHandler ( Configuration config,
FawkesNetworkHub hub 
)

Constructor.

Parameters:
configconfiguration, loaded and ready to be used for getting and setting values
hubFawkes network hub to use for receiving and sending network messages

Definition at line 52 of file net_handler.cpp.

References fawkes::Thread::start(), fawkes::Configuration::add_change_handler(), and fawkes::FawkesNetworkHub::add_handler().

fawkes::ConfigNetworkHandler::~ConfigNetworkHandler ( )

Member Function Documentation

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

Client connected.

Ignored.

Parameters:
clidclient ID

Implements fawkes::FawkesNetworkHandler.

Definition at line 508 of file net_handler.cpp.

void fawkes::ConfigNetworkHandler::client_disconnected ( unsigned int  clid) [virtual]

Client disconnected.

If the client was a subscriber it is removed.

Parameters:
clidclient ID

Implements fawkes::FawkesNetworkHandler.

Definition at line 518 of file net_handler.cpp.

References fawkes::LockList::lock(), fawkes::LibLogger::log_warn(), and fawkes::LockList::unlock().

void fawkes::ConfigNetworkHandler::config_comment_changed ( const char *  path,
bool  is_default,
const char *  comment 
) [virtual]

Called whenever a comment has changed.

Parameters:
pathpath of value
is_defaulttrue if modified comment is of a default value, false otherwise
commentnew comment

Implements fawkes::ConfigurationChangeHandler.

Definition at line 648 of file net_handler.cpp.

References fawkes::LockList::lock(), fawkes::config_comment_msg_t::s, fawkes::FawkesNetworkHub::send(), fawkes::LibLogger::log_warn(), and fawkes::LockList::unlock().

void fawkes::ConfigNetworkHandler::config_tag_changed ( const char *  new_tag) [virtual]

Tag changed.

Ignored.

Parameters:
new_tagnew tag

Implements fawkes::ConfigurationChangeHandler.

Definition at line 536 of file net_handler.cpp.

void fawkes::ConfigNetworkHandler::config_value_changed ( const char *  path,
bool  is_default,
int  value 
) [virtual]

Called whenever an int value has changed.

Parameters:
pathpath of value
is_defaulttrue if modified value is a default value, false otherwise
valuenew value

Implements fawkes::ConfigurationChangeHandler.

Definition at line 542 of file net_handler.cpp.

References fawkes::LockList::lock(), fawkes::config_int_value_msg_t::i, fawkes::FawkesNetworkHub::send(), fawkes::LibLogger::log_warn(), and fawkes::LockList::unlock().

void fawkes::ConfigNetworkHandler::config_value_changed ( const char *  path,
bool  is_default,
unsigned int  value 
) [virtual]

Called whenever an unsigned int value has changed.

Parameters:
pathpath of value
is_defaulttrue if modified value is a default value, false otherwise
valuenew value

Implements fawkes::ConfigurationChangeHandler.

Definition at line 563 of file net_handler.cpp.

References fawkes::LockList::lock(), fawkes::config_uint_value_msg_t::u, fawkes::FawkesNetworkHub::send(), fawkes::LibLogger::log_warn(), and fawkes::LockList::unlock().

void fawkes::ConfigNetworkHandler::config_value_changed ( const char *  path,
bool  is_default,
float  value 
) [virtual]

Called whenever an float value has changed.

Parameters:
pathpath of value
is_defaulttrue if modified value is a default value, false otherwise
valuenew value

Implements fawkes::ConfigurationChangeHandler.

Definition at line 584 of file net_handler.cpp.

References fawkes::LockList::lock(), fawkes::config_float_value_msg_t::f, fawkes::FawkesNetworkHub::send(), fawkes::LibLogger::log_warn(), and fawkes::LockList::unlock().

void fawkes::ConfigNetworkHandler::config_value_changed ( const char *  path,
bool  is_default,
bool  value 
) [virtual]

Called whenever an boolean value has changed.

Parameters:
pathpath of value
is_defaulttrue if modified value is a default value, false otherwise
valuenew value

Implements fawkes::ConfigurationChangeHandler.

Definition at line 605 of file net_handler.cpp.

References fawkes::LockList::lock(), fawkes::config_bool_value_msg_t::b, fawkes::FawkesNetworkHub::send(), fawkes::LibLogger::log_warn(), and fawkes::LockList::unlock().

void fawkes::ConfigNetworkHandler::config_value_changed ( const char *  path,
bool  is_default,
const char *  value 
) [virtual]

Called whenever a string value has changed.

Parameters:
pathpath of value
is_defaulttrue if modified value is a default value, false otherwise
valuenew value

Implements fawkes::ConfigurationChangeHandler.

Definition at line 626 of file net_handler.cpp.

References fawkes::LockList::lock(), fawkes::config_string_value_msg_t::s, fawkes::FawkesNetworkHub::send(), fawkes::LibLogger::log_warn(), and fawkes::LockList::unlock().

void fawkes::ConfigNetworkHandler::config_value_erased ( const char *  path,
bool  is_default 
) [virtual]

Called whenever a value has been erased from the config.

Parameters:
pathpath of value
is_defaulttrue if erased value was a default value, false otherwise

Implements fawkes::ConfigurationChangeHandler.

Definition at line 671 of file net_handler.cpp.

References fawkes::LockList::lock(), fawkes::FawkesNetworkHub::send(), fawkes::LibLogger::log_warn(), and fawkes::LockList::unlock().

void fawkes::ConfigNetworkHandler::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 495 of file net_handler.cpp.

References fawkes::RefCount::ref(), fawkes::LockQueue::push_locked(), and fawkes::Thread::wakeup().

void fawkes::ConfigNetworkHandler::loop ( ) [virtual]

Process all network messages that have been received.

Reimplemented from fawkes::Thread.

Definition at line 162 of file net_handler.cpp.

References fawkes::FawkesNetworkMessage::msgid(), fawkes::LockList::push_back_locked(), fawkes::FawkesNetworkMessage::clid(), fawkes::Configuration::lock(), fawkes::Configuration::iterator_default(), fawkes::Configuration::ValueIterator::next(), fawkes::ConfigListContent::append(), fawkes::Configuration::iterator_hostspecific(), fawkes::FawkesNetworkHub::send(), fawkes::Configuration::unlock(), fawkes::FawkesNetworkMessage::msg(), fawkes::config_erase_value_msg_t::cp, fawkes::config_descriptor_t::path, fawkes::config_descriptor_t::is_default, fawkes::Configuration::erase_default(), fawkes::Configuration::erase(), fawkes::Exception::append(), fawkes::LibLogger::log_warn(), fawkes::FawkesNetworkMessage::payload_size(), fawkes::FawkesNetworkMessage::payload(), fawkes::config_getval_msg_t::cp, fawkes::Configuration::get_float(), fawkes::Configuration::is_default(), fawkes::config_float_value_msg_t::f, fawkes::Configuration::get_uint(), fawkes::config_uint_value_msg_t::u, fawkes::Configuration::get_int(), fawkes::config_int_value_msg_t::i, fawkes::Configuration::get_bool(), fawkes::config_bool_value_msg_t::b, fawkes::Configuration::get_string(), fawkes::config_string_value_msg_t::s, fawkes::Configuration::get_value(), fawkes::Configuration::set_float(), fawkes::Configuration::set_default_float(), fawkes::Configuration::set_uint(), fawkes::Configuration::set_default_uint(), fawkes::Configuration::set_int(), fawkes::Configuration::set_default_int(), fawkes::Configuration::set_bool(), fawkes::Configuration::set_default_bool(), fawkes::FawkesNetworkMessage::msgge(), fawkes::Configuration::set_string(), fawkes::Configuration::set_default_string(), fawkes::Configuration::set_comment(), fawkes::config_comment_msg_t::s, fawkes::Configuration::get_comment(), fawkes::Configuration::set_default_comment(), fawkes::Configuration::get_default_comment(), fawkes::RefCount::unref(), and fawkes::LockQueue::pop_locked().

virtual void fawkes::ConfigNetworkHandler::run ( ) [inline, protected, virtual]

Stub to see name in backtrace for easier debugging.

See also:
Thread::run()

Reimplemented from fawkes::Thread.

Definition at line 71 of file net_handler.h.


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