From 55c640704152694dca1f19bf2a0b86fa2efa99d1 Mon Sep 17 00:00:00 2001 From: Paul McLean Date: Thu, 19 Dec 2013 15:47:29 -0800 Subject: [PATCH] Adding a handy predicate function (str_parms_has_key() Change-Id: I1af5c260a1a820b65f0850ea9adb38b01fcb183c --- include/cutils/str_parms.h | 6 ++++++ libcutils/str_parms.c | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/include/cutils/str_parms.h b/include/cutils/str_parms.h index 247c996f5..66f363770 100644 --- a/include/cutils/str_parms.h +++ b/include/cutils/str_parms.h @@ -34,6 +34,12 @@ int str_parms_add_int(struct str_parms *str_parms, const char *key, int value); int str_parms_add_float(struct str_parms *str_parms, const char *key, float value); +// Returns non-zero if the str_parms contains the specified key. +int str_parms_has_key(struct str_parms *str_parms, const char *key); + +// Gets value associated with the specified key (if present), placing it in the buffer +// pointed to by the out_val parameter. Returns the length of the returned string value. +// If 'key' isn't in the parms, then return -ENOENT (-2) and leave 'out_val' untouched. int str_parms_get_str(struct str_parms *str_parms, const char *key, char *out_val, int len); int str_parms_get_int(struct str_parms *str_parms, const char *key, diff --git a/libcutils/str_parms.c b/libcutils/str_parms.c index 7cfbcb354..1edef118f 100644 --- a/libcutils/str_parms.c +++ b/libcutils/str_parms.c @@ -240,6 +240,10 @@ int str_parms_add_float(struct str_parms *str_parms, const char *key, return ret; } +int str_parms_has_key(struct str_parms *str_parms, const char *key) { + return hashmapGet(str_parms->map, (void *)key) != NULL; +} + int str_parms_get_str(struct str_parms *str_parms, const char *key, char *val, int len) {