Fawkes API
Fawkes Development Version
|
24 #include <config/change_handler.h>
25 #include <config/config.h>
435 append(
"%s: %s", prefix, msg);
446 :
Exception(
"Config value for '%s' not found", path)
462 const char *requested)
465 append(
"Config value for '%s' is not of type '%s', but of type '%s'", path, requested, actual);
479 va_start(va, format);
621 const char *c = h->config_monitor_prefix();
632 for (ChangeHandlerMultimap::iterator i =
_ch_range.first; !changed && (i !=
_ch_range.second);
634 if ((*i).second == h) {
657 if (strstr(path, (*j).first) == path) {
659 for (ChangeHandlerMultimap::const_iterator i =
_ch_range.first; i !=
_ch_range.second; ++i) {
660 rv->push_back((*i).second);
677 Configuration::ValueIterator *value =
get_value(path);
679 for (ChangeHandlerList::const_iterator i = h->begin(); i != h->end(); ++i) {
680 if (comment_changed) {
681 (*i)->config_comment_changed(value);
683 (*i)->config_value_changed(value);
687 for (ChangeHandlerList::const_iterator i = h->begin(); i != h->end(); ++i) {
688 (*i)->config_value_erased(path);
755 std::vector<unsigned int>
785 std::vector<std::string>
787 const std::vector<std::string> &default_val)
virtual std::vector< int > get_ints(const char *path)=0
std::list< ConfigurationChangeHandler * > ChangeHandlerList
List that contains pointers to ConfigurationChangeHandler.
ChangeHandlerMultimapRange _ch_range
Change handler range.
void append_va(const char *format, va_list va)
Append messages to the message list.
virtual float get_float_or_default(const char *path, const float &default_val)
virtual std::vector< bool > get_bools(const char *path)=0
virtual bool get_bool(const char *path)=0
ChangeHandlerMultimap _change_handlers
Registered change handlers.
ChangeHandlerList * find_handlers(const char *path)
Find handlers for given path.
virtual std::vector< unsigned int > get_uints(const char *path)=0
virtual int get_int(const char *path)=0
void append(const char *format,...)
Append messages to the message list.
ConfigTypeMismatchException(const char *path, const char *actual, const char *requested)
Constructor.
virtual std::vector< float > get_floats(const char *path)=0
ConfigEntryNotFoundException(const char *path)
Constructor.
virtual bool get_bool_or_default(const char *path, const bool &default_val)
const char * config_monitor_prefix()
Which path prefix shall be monitored.
virtual std::vector< std::string > get_strings(const char *path)=0
virtual void rem_change_handler(ConfigurationChangeHandler *h)
Remove a configuration change handler.
virtual std::vector< unsigned int > get_uints_or_defaults(const char *path, const std::vector< unsigned int > &default_val)
virtual std::vector< std::string > get_strings_or_defaults(const char *path, const std::vector< std::string > &default_val)
virtual std::vector< float > get_floats_or_defaults(const char *path, const std::vector< float > &default_val)
virtual float get_float(const char *path)=0
virtual unsigned int get_uint_or_default(const char *path, const unsigned int &default_val)
virtual unsigned int get_uint(const char *path)=0
virtual std::string get_string(const char *path)=0
virtual std::string get_string_or_default(const char *path, const std::string &default_val)
virtual int get_int_or_default(const char *path, const int &default_val)
ConfigurationException(const char *msg)
Constructor.
virtual std::vector< int > get_ints_or_defaults(const char *path, const std::vector< int > &default_val)
CouldNotOpenConfigException(const char *format,...)
Constructor.
virtual std::vector< bool > get_bools_or_defaults(const char *path, const std::vector< bool > &default_val)
virtual void add_change_handler(ConfigurationChangeHandler *h)
Add a configuration change handler.
void notify_handlers(const char *path, bool comment_changed=false)
Notify handlers for given path.
virtual ValueIterator * get_value(const char *path)=0