diff options
Diffstat (limited to 'libglusterfs')
| -rw-r--r-- | libglusterfs/src/dict.c | 45 | ||||
| -rw-r--r-- | libglusterfs/src/dict.h | 19 | ||||
| -rw-r--r-- | libglusterfs/src/libglusterfs.sym | 9 | 
3 files changed, 68 insertions, 5 deletions
diff --git a/libglusterfs/src/dict.c b/libglusterfs/src/dict.c index a3998c463eb..b7cf2b0c8fe 100644 --- a/libglusterfs/src/dict.c +++ b/libglusterfs/src/dict.c @@ -1810,6 +1810,32 @@ err:  }  int +dict_get_int32n (dict_t *this, char *key, const int keylen, int32_t *val) +{ +        data_t * data = NULL; +        int      ret  = 0; + +        if (!this || !key || !val) { +                ret = -EINVAL; +                goto err; +        } + +        ret = dict_get_with_refn (this, key, keylen, &data); +        if (ret != 0) { +                goto err; +        } + +        VALIDATE_DATA_AND_LOG(data, GF_DATA_TYPE_INT, key, -EINVAL); + +        ret = data_to_int32_ptr (data, val); + +err: +        if (data) +                data_unref (data); +        return ret; +} + +int  dict_get_int32 (dict_t *this, char *key, int32_t *val)  {          data_t * data = NULL; @@ -1835,6 +1861,25 @@ err:          return ret;  } +int +dict_set_int32n (dict_t *this, char *key, const int keylen, int32_t val) +{ +        data_t * data = NULL; +        int      ret  = 0; + +        data = data_from_int32 (val); +        if (!data) { +                ret = -EINVAL; +                goto err; +        } + +        ret = dict_setn (this, key, keylen, data); +        if (ret < 0) +                data_destroy (data); + +err: +        return ret; +}  int  dict_set_int32 (dict_t *this, char *key, int32_t val) diff --git a/libglusterfs/src/dict.h b/libglusterfs/src/dict.h index 009663aec2e..a8945d017b7 100644 --- a/libglusterfs/src/dict.h +++ b/libglusterfs/src/dict.h @@ -113,7 +113,8 @@ int32_t dict_setn (dict_t *this, char *key, const int keylen, data_t *value);  int32_t dict_add (dict_t *this, char *key, data_t *value);  int32_t dict_addn (dict_t *this, char *key, const int keylen, data_t *value);  int dict_get_with_ref (dict_t *this, char *key, data_t **data); -int dict_get_with_refn (dict_t *this, char *key, const int keylen, data_t **data); +int dict_get_with_refn (dict_t *this, char *key, const int keylen, +                        data_t **data);  data_t *dict_get (dict_t *this, char *key);  data_t *dict_getn (dict_t *this, char *key, const int keylen);  void dict_del (dict_t *this, char *key); @@ -219,7 +220,11 @@ GF_MUST_CHECK int dict_get_int16 (dict_t *this, char *key, int16_t *val);  GF_MUST_CHECK int dict_set_int16 (dict_t *this, char *key, int16_t val);  GF_MUST_CHECK int dict_get_int32 (dict_t *this, char *key, int32_t *val); +GF_MUST_CHECK int dict_get_int32n (dict_t *this, char *key, const int keylen, +                                   int32_t *val);  GF_MUST_CHECK int dict_set_int32 (dict_t *this, char *key, int32_t val); +GF_MUST_CHECK int dict_set_int32n (dict_t *this, char *key, const int keylen, +                                   int32_t val);  GF_MUST_CHECK int dict_get_int64 (dict_t *this, char *key, int64_t *val);  GF_MUST_CHECK int dict_set_int64 (dict_t *this, char *key, int64_t val); @@ -251,14 +256,18 @@ GF_MUST_CHECK int dict_set_static_bin (dict_t *this, char *key, void *ptr, size_  GF_MUST_CHECK int dict_set_option (dict_t *this, char *key, char *str);  GF_MUST_CHECK int dict_set_str (dict_t *this, char *key, char *str); -GF_MUST_CHECK int dict_set_strn (dict_t *this, char *key, const int keylen, char *str); -GF_MUST_CHECK int dict_set_nstrn (dict_t *this, char *key, const int keylen, char *str, const int vallen); +GF_MUST_CHECK int dict_set_strn (dict_t *this, char *key, const int keylen, +                                 char *str); +GF_MUST_CHECK int dict_set_nstrn (dict_t *this, char *key, const int keylen, +                                  char *str, const int vallen);  GF_MUST_CHECK int dict_set_dynstr (dict_t *this, char *key, char *str); -GF_MUST_CHECK int dict_set_dynstrn (dict_t *this, char *key, const int keylen, char *str); +GF_MUST_CHECK int dict_set_dynstrn (dict_t *this, char *key, const int keylen, +                                    char *str);  GF_MUST_CHECK int dict_set_dynstr_with_alloc (dict_t *this, char *key, const char *str);  GF_MUST_CHECK int dict_add_dynstr_with_alloc (dict_t *this, char *key, char *str);  GF_MUST_CHECK int dict_get_str (dict_t *this, char *key, char **str); -GF_MUST_CHECK int dict_get_strn (dict_t *this, char *key, const int keylen, char **str); +GF_MUST_CHECK int dict_get_strn (dict_t *this, char *key, const int keylen, +                                 char **str);  GF_MUST_CHECK int dict_get_str_boolean (dict_t *this, char *key, int default_val);  GF_MUST_CHECK int dict_rename_key (dict_t *this, char *key, char *replace_key); diff --git a/libglusterfs/src/libglusterfs.sym b/libglusterfs/src/libglusterfs.sym index 61a866a3d27..c5b322a9bdf 100644 --- a/libglusterfs/src/libglusterfs.sym +++ b/libglusterfs/src/libglusterfs.sym @@ -354,11 +354,13 @@ default_put_resume  __dentry_grep  dht_is_linkfile  dict_add +dict_addn  dict_add_dynstr_with_alloc  dict_allocate_and_serialize  dict_copy  dict_copy_with_ref  dict_del +dict_deln  dict_dump_to_statedump  dict_dump_to_str  dict_dump_to_log @@ -367,17 +369,20 @@ dict_foreach_fnmatch  dict_foreach_match  dict_for_key_value  dict_get +dict_getn  dict_get_bin  dict_get_double  dict_get_gfuuid  dict_get_iatt  dict_get_int16  dict_get_int32 +dict_get_int32n  dict_get_int64  dict_get_int8  dict_get_ptr  dict_get_ptr_and_len  dict_get_str +dict_get_strn  dict_get_str_boolean  dict_get_uint32  dict_get_uint64 @@ -396,21 +401,25 @@ dict_serialize  dict_serialized_length  dict_serialize_value_with_delim  dict_set +dict_setn  dict_set_bin  dict_set_double  dict_set_dynptr  dict_set_dynstr +dict_set_dynstrn  dict_set_dynstr_with_alloc  dict_set_gfuuid  dict_set_iatt  dict_set_int16  dict_set_int32 +dict_set_int32n  dict_set_int64  dict_set_int8  dict_set_static_bin  dict_set_static_ptr  dict_set_str  dict_set_strn +dict_setn_nstrn  dict_set_nstrn  dict_set_uint32  dict_set_uint64  | 
