PROP_DICTIONARY_UTIL(3) | Library Functions Manual | PROP_DICTIONARY_UTIL(3)

# NAME

`prop_dictionary_util`, `prop_dictionary_get_dict`, `prop_dictionary_get_bool`, `prop_dictionary_set_bool`, `prop_dictionary_get_int8`, `prop_dictionary_get_uint8`, `prop_dictionary_set_int8`, `prop_dictionary_set_uint8`, `prop_dictionary_get_int16`, `prop_dictionary_get_uint16`, `prop_dictionary_set_int16`, `prop_dictionary_set_uint16`, `prop_dictionary_get_int32`, `prop_dictionary_get_uint32`, `prop_dictionary_set_int32`, `prop_dictionary_set_uint32`, `prop_dictionary_get_int64`, `prop_dictionary_get_uint64`, `prop_dictionary_set_int64`, `prop_dictionary_set_uint64`, `prop_dictionary_get_cstring`, `prop_dictionary_set_cstring`, `prop_dictionary_get_cstring_nocopy`, `prop_dictionary_set_cstring_nocopy`, `prop_dictionary_set_and_rel` —
dictionary property collection object utility functions

# LIBRARY

Property Container Object Library (libprop, -lprop)

# SYNOPSIS

`#include <prop/proplib.h>`

bool
`prop_dictionary_get_dict`(prop_dictionary_t dict, const char *key, prop_dictionary_t *dictp);

bool
`prop_dictionary_get_bool`(prop_dictionary_t dict, const char *key, bool *valp);

bool
`prop_dictionary_set_bool`(prop_dictionary_t dict, const char *key, bool val);

bool
`prop_dictionary_get_int8`(prop_dictionary_t dict, const char *key, int8_t *valp);

bool
`prop_dictionary_get_uint8`(prop_dictionary_t dict, const char *key, uint8_t *valp);

bool
`prop_dictionary_set_int8`(prop_dictionary_t dict, const char *key, int8_t val);

bool
`prop_dictionary_set_uint8`(prop_dictionary_t dict, const char *key, uint8_t val);

bool
`prop_dictionary_get_int16`(prop_dictionary_t dict, const char *key, int16_t *valp);

bool
`prop_dictionary_get_uint16`(prop_dictionary_t dict, const char *key, uint16_t *valp);

bool
`prop_dictionary_set_int16`(prop_dictionary_t dict, const char *key, int16_t val);

bool
`prop_dictionary_set_uint16`(prop_dictionary_t dict, const char *key, uint16_t val);

bool
`prop_dictionary_get_int32`(prop_dictionary_t dict, const char *key, int32_t *valp);

bool
`prop_dictionary_get_uint32`(prop_dictionary_t dict, const char *key, uint32_t *valp);

bool
`prop_dictionary_set_int32`(prop_dictionary_t dict, const char *key, int32_t val);

bool
`prop_dictionary_set_uint32`(prop_dictionary_t dict, const char *key, uint32_t val);

bool
`prop_dictionary_get_int64`(prop_dictionary_t dict, const char *key, int64_t *valp);

bool
`prop_dictionary_get_uint64`(prop_dictionary_t dict, const char *key, uint64_t *valp);

bool
`prop_dictionary_set_int64`(prop_dictionary_t dict, const char *key, int64_t val);

bool
`prop_dictionary_set_uint64`(prop_dictionary_t dict, const char *key, uint64_t val);

bool
`prop_dictionary_get_cstring`(prop_dictionary_t dict, const char *key, char **strp);

bool
`prop_dictionary_set_cstring`(prop_dictionary_t dict, const char *key, const char *str);

bool
`prop_dictionary_get_cstring_nocopy`(prop_dictionary_t dict, const char *key, const char **strp);

bool
`prop_dictionary_set_cstring_nocopy`(prop_dictionary_t dict, const char *key, const char *strp);

bool
`prop_dictionary_set_and_rel`(prop_dictionary_t dict, const char *key, prop_object_t obj);

# DESCRIPTION

The `prop_dictionary_util`() family of functions are provided to make getting and setting values in dictionaries more convenient in some applications.

The getters check the type of the returned object and, in some cases, also ensure that the returned value is within the range implied by the getter's value type.

The setters handle object creation and release for the caller.

The `prop_dictionary_get_cstring`() function returns dynamically allocated memory. See prop_string(3) for more information.

The `prop_dictionary_get_cstring_nocopy`() and `prop_dictionary_set_cstring_nocopy`() functions do not copy the string that is set or returned. See prop_string(3) for more information.

The `prop_dictionary_set_and_rel`() function adds the object to the dictionary and releases it. The object is also released on failure.

# RETURN VALUES

The `prop_dictionary_util`() getter functions return `true` if the object exists in the dictionary and the value is in-range, or `false` otherwise.

The `prop_dictionary_util`() setter functions return `true` if creating the object and storing it in the dictionary is successful, or `false` otherwise.

# SEE ALSO

prop_bool(3), prop_dictionary(3), prop_number(3), proplib(3)

# HISTORY

The proplib(3) property container object library first appeared in NetBSD 4.0.

August 7, 2011 | NetBSD 9.2