23 #ifndef ICL_CORE_CONFIG_CONFIG_LIST_H_INCLUDED 24 #define ICL_CORE_CONFIG_CONFIG_LIST_H_INCLUDED 33 #include <boost/assign/list_of.hpp> 34 #include <boost/regex.hpp> 36 #define CONFIG_LIST(cls, prefix, members, result) \ 37 (new icl_core::config::ConfigList<cls, ICL_CORE_CONFIG_TYPEOF(result)>(prefix, members, result)) 39 #define MEMBER_MAPPING(cls, arg) boost::assign::list_of<icl_core::config::impl::MemberValueIface<cls>*> arg 55 template<
typename T,
class OutputIterator = std::back_insert_iterator<std::list<T> > >
61 OutputIterator result)
74 boost::regex_replace(prefix +
m_config_prefix, boost::regex(
"\\/"),
"\\\\\\/") +
"\\/(.+?)(\\/(.+))?");
83 if (suffix == (*it)->getSuffix())
91 "Read parameter " << cIter.
matchGroup(0) <<
" = " 98 "Error reading configuration parameter \"" << cIter.
matchGroup(0) <<
" = " 113 for (
typename std::map<std::string, T>::const_iterator it =
m_element_map.begin();
121 for (std::map<std::string, std::string>::const_iterator it =
m_string_value_map.begin();
std::string m_config_prefix
static ConfigManager & instance()
#define SLOGGING_TRACE_C(stream, classname, arg)
#define SLOGGING_ERROR_C(stream, classname, arg)
std::list< impl::MemberValueIface< T > * > m_members
KeyValueDirectoryIterator< T > find(const String &query) const
Implements a thread-safe logging framework.
ThreadStream & endl(ThreadStream &stream)
virtual icl_core::String key() const
String matchGroup(size_t index) const
ConfigList(std::string config_prefix, std::list< impl::MemberValueIface< T > * > members, OutputIterator result)
std::map< std::string, T > m_element_map
virtual icl_core::String stringValue() const
std::map< std::string, std::string > m_string_value_map
std::string m_string_value