Public Member Functions | Protected Member Functions

fawkes::ConfigNetworkHandler Class Reference

Fawkes Configuration Network Handler. More...

#include <>>

Inheritance diagram for fawkes::ConfigNetworkHandler:
Inheritance graph
[legend]

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

Definition at line 45 of file net_handler.h.


Constructor & Destructor Documentation

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

Constructor.

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

Member Function Documentation

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

Client connected.

Ignored.

Parameters:
clid client 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:
clid client ID

Implements fawkes::FawkesNetworkHandler.

Definition at line 518 of file net_handler.cpp.

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

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

Called whenever a comment has changed.

Parameters:
path path of value
is_default true if modified comment is of a default value, false otherwise
comment new comment

Implements fawkes::ConfigurationChangeHandler.

Definition at line 648 of file net_handler.cpp.

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

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

Tag changed.

Ignored.

Parameters:
new_tag new 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,
float  value 
) [virtual]

Called whenever an float value has changed.

Parameters:
path path of value
is_default true if modified value is a default value, false otherwise
value new value

Implements fawkes::ConfigurationChangeHandler.

Definition at line 584 of file net_handler.cpp.

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

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

Called whenever an boolean value has changed.

Parameters:
path path of value
is_default true if modified value is a default value, false otherwise
value new value

Implements fawkes::ConfigurationChangeHandler.

Definition at line 605 of file net_handler.cpp.

References fawkes::config_bool_value_msg_t::b, fawkes::LockList< Type >::lock(), fawkes::LibLogger::log_warn(), fawkes::FawkesNetworkHub::send(), and fawkes::LockList< Type >::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:
path path of value
is_default true if modified value is a default value, false otherwise
value new value

Implements fawkes::ConfigurationChangeHandler.

Definition at line 626 of file net_handler.cpp.

References fawkes::LockList< Type >::lock(), fawkes::LibLogger::log_warn(), fawkes::config_string_value_msg_t::s, fawkes::FawkesNetworkHub::send(), and fawkes::LockList< Type >::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:
path path of value
is_default true if modified value is a default value, false otherwise
value new value

Implements fawkes::ConfigurationChangeHandler.

Definition at line 563 of file net_handler.cpp.

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

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

Called whenever an int value has changed.

Parameters:
path path of value
is_default true if modified value is a default value, false otherwise
value new value

Implements fawkes::ConfigurationChangeHandler.

Definition at line 542 of file net_handler.cpp.

References fawkes::config_int_value_msg_t::i, fawkes::LockList< Type >::lock(), fawkes::LibLogger::log_warn(), fawkes::FawkesNetworkHub::send(), and fawkes::LockList< Type >::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:
path path of value
is_default true if erased value was a default value, false otherwise

Implements fawkes::ConfigurationChangeHandler.

Definition at line 671 of file net_handler.cpp.

References fawkes::LockList< Type >::lock(), fawkes::LibLogger::log_warn(), fawkes::FawkesNetworkHub::send(), and fawkes::LockList< Type >::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:
msg message

Implements fawkes::FawkesNetworkHandler.

Definition at line 495 of file net_handler.cpp.

References fawkes::LockQueue< Type >::push_locked(), fawkes::RefCount::ref(), 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::Exception::append(), fawkes::ConfigListContent::append(), fawkes::config_bool_value_msg_t::b, fawkes::FawkesNetworkMessage::clid(), fawkes::config_getval_msg_t::cp, fawkes::config_erase_value_msg_t::cp, fawkes::Configuration::erase(), fawkes::Configuration::erase_default(), fawkes::config_float_value_msg_t::f, fawkes::Configuration::get_bool(), fawkes::Configuration::get_comment(), fawkes::Configuration::get_default_comment(), fawkes::Configuration::get_float(), fawkes::Configuration::get_int(), fawkes::Configuration::get_string(), fawkes::Configuration::get_uint(), fawkes::Configuration::get_value(), fawkes::config_int_value_msg_t::i, fawkes::Configuration::is_default(), fawkes::config_descriptor_t::is_default, fawkes::Configuration::iterator_default(), fawkes::Configuration::iterator_hostspecific(), fawkes::Configuration::lock(), fawkes::LibLogger::log_warn(), fawkes::FawkesNetworkMessage::msg(), fawkes::FawkesNetworkMessage::msgge(), fawkes::FawkesNetworkMessage::msgid(), fawkes::Configuration::ValueIterator::next(), 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_comment_msg_t::s, fawkes::config_string_value_msg_t::s, fawkes::FawkesNetworkHub::send(), fawkes::Configuration::set_bool(), fawkes::Configuration::set_comment(), fawkes::Configuration::set_default_bool(), fawkes::Configuration::set_default_comment(), 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_int(), fawkes::Configuration::set_string(), fawkes::Configuration::set_uint(), fawkes::config_uint_value_msg_t::u, fawkes::Configuration::unlock(), and fawkes::RefCount::unref().

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: