The key and value pairs config wrapper class for managing app setting.

Dependents:   dconfig_demo mbed_controller_demo

Revision:
2:989178d925e9
Parent:
1:4f7c80fbd4a1
--- a/dconfig.cpp	Tue Feb 24 15:48:43 2015 +0000
+++ b/dconfig.cpp	Wed Mar 25 21:04:58 2015 +0000
@@ -50,7 +50,7 @@
     return s;
 }
 
-bool DConfig::load_from( const char *ptr, size_t ptr_len, char kv_delimiter, char item_delimiter )
+bool DConfig::load_from( const char *ptr, size_t ptr_len )
 {
     const char *end = ptr + ptr_len;
     const char *begin;
@@ -60,7 +60,7 @@
     {
         // load key part
         begin = ptr;
-        while (*ptr != kv_delimiter)    // go until it reaches delimiter
+        while (*ptr != kv_delimiter_)    // go until it reaches delimiter
         {
             ptr++;
             if (ptr > end)
@@ -78,7 +78,7 @@
 
         // load value part
         begin = ptr;
-        while (*ptr != item_delimiter)
+        while (*ptr != item_delimiter_)
         {
             ptr++;
             if (ptr > end)
@@ -108,21 +108,36 @@
     return func(user_data, delimiter);
 }
 
-bool DConfig::save_to( DConfigOutput_t func, void *user_data, char kv_delimiter, char item_delimiter ) const
+bool DConfig::save_to( DConfigOutput_t func, void *user_data ) const
 {
     for (std::map<std::string, std::string>::const_iterator it = this->begin();
         it != this->end(); ++it)
     {
-        if (!put_cstring(func, user_data, it->first.c_str(), kv_delimiter))
+        if (!put_cstring(func, user_data, it->first.c_str(), kv_delimiter_))
             return false;
 
-        if (!put_cstring(func, user_data, it->second.c_str(), item_delimiter))
+        if (!put_cstring(func, user_data, it->second.c_str(), item_delimiter_))
             return false;
     }
 
     return true;
 }
 
+
+static bool print_char(void *user_data, char c)
+{
+	if (c == '\n')
+		putchar('\r');
+	putchar(c);
+
+	return true;
+}
+
+void DConfig::print_all( void ) const
+{
+	save_to(print_char, NULL);
+}
+
 static bool count_config(void *user_data, char c)
 {
     size_t *cnt = (size_t*)user_data;
@@ -159,3 +174,4 @@
 
     return value_replace(key_name, tmp);
 }
+