18.2.106. PMIx_Info_list_add_value_unique
PMIx_Info_list_add_value_unique — Append an entry to an opaque
pmix_info_t(5) list from a key and pmix_value_t,
only if the key is not already present
18.2.106.1. SYNOPSIS
#include <pmix.h>
pmix_status_t PMIx_Info_list_add_value_unique(void *ptr,
const char *key,
const pmix_value_t *value,
bool overwrite);
18.2.106.1.1. Python Syntax
No Python equivalent
18.2.106.2. INPUT PARAMETERS
ptr: Opaque list handle returned by PMIx_Info_list_start(3).key: String key to be loaded. Must be no longer thanPMIX_MAX_KEYLEN.value: Pointer to apmix_value_twhose contents are to be copied into the entry.overwrite: Iftrueand an entry with the same key already exists, its value is replaced with a copy of the provided one. Iffalse, an existing entry is left unchanged.
18.2.106.3. DESCRIPTION
Add a key/value entry to the list identified by ptr using an
already-constructed pmix_value_t, enforcing key uniqueness. This is the
pmix_value_t analogue of
PMIx_Info_list_add_unique(3).
The list is first scanned for an existing entry whose key matches key:
If a match is found and
overwriteistrue, the existing value is destructed and replaced with a copy of the providedvalue. No new entry is appended.If a match is found and
overwriteisfalse, the list is left unchanged.If no match is found, a new entry is created from
keyandvalueand appended to the end of the list.
The value is transferred with a deep copy; the caller’s value may be
modified or freed once the function returns.
18.2.106.4. RETURN VALUE
Returns PMIX_SUCCESS when the entry was added, updated, or intentionally
left unchanged; or a negative PMIx error constant such as PMIX_ERR_NOMEM if
a new entry could not be allocated, or any error returned while copying the
value.