X-Git-Url: https://git.realraum.at/?a=blobdiff_plain;f=powersensordaemon%2Fkey_value_storage.c;h=de5e054eaf2964a4f91781d087239bd47fe8694e;hb=9148b190d80a15e5393f7ef8c5bd6997c4b40bb2;hp=7f4b5845585122718582b64f860d75f6bde967f1;hpb=2a39bef1b41cb8583d51c6453d5ac19cb6627c9d;p=svn42.git diff --git a/powersensordaemon/key_value_storage.c b/powersensordaemon/key_value_storage.c index 7f4b584..de5e054 100644 --- a/powersensordaemon/key_value_storage.c +++ b/powersensordaemon/key_value_storage.c @@ -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)