to github
[svn42.git] / powersensordaemon / key_value_storage.c
index 7f4b584..de5e054 100644 (file)
@@ -76,6 +76,40 @@ char* key_value_storage_find(key_value_storage_t* stor, const char* key)
   return NULL;
 }
 
+/* Warning: this function only works if you actually store \0-terminated strings as values!! */
+char const * key_value_storage_find_first_stringvalue(key_value_storage_t* stor, char const * value)
+{
+  if(!stor || !value)
+    return NULL;
+
+  string_list_element_t* k = stor->keys_.first_;
+  string_list_element_t* v = stor->values_.first_;
+  while(v && k) {
+    if(!strcmp(v->string_, value))
+      return k->string_;
+    
+    k = k->next_;
+    v = v->next_;
+  }
+
+  return NULL;
+}
+
+int key_value_storage_length(key_value_storage_t* stor)
+{
+  if(!stor)
+    return 0;
+
+  int length = 0;
+  string_list_element_t* k = stor->keys_.first_;
+  while(k) {
+    length++;
+    k = k->next_;
+  }
+
+  return length;
+}
+
 void key_value_storage_print(key_value_storage_t* stor, const char* head, const char* sep, const char* tail)
 {
   if(!stor)