.\" Man page generated from reStructuredText
.\" by the Docutils 0.23 manpage writer.
.
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "PMIX_VALUE_T" "5" "Sep 27, 2026" "" "OpenPMIx"
.sp
\fIpmix_value_t\fP — Defines a value along with its type
.SH SYNTAX
.SS C Syntax
.INDENT 0.0
.INDENT 3.5
.sp
.EX
#include <pmix_common.h>

typedef struct pmix_value {
    pmix_data_type_t type;
    union {
        bool flag;
        uint8_t byte;
        char *string;
        size_t size;
        pid_t pid;
        int integer;
        int8_t int8;
        int16_t int16;
        int32_t int32;
        int64_t int64;
        unsigned int uint;
        uint8_t uint8;
        uint16_t uint16;
        uint32_t uint32;
        uint64_t uint64;
        float fval;
        double dval;
        struct timeval tv;
        time_t time;
        pmix_status_t status;
        pmix_rank_t rank;
        pmix_nspace_t *nspace;
        pmix_proc_t *proc;
        pmix_byte_object_t bo;
        pmix_persistence_t persist;
        pmix_scope_t scope;
        pmix_data_range_t range;
        pmix_proc_state_t state;
        pmix_proc_info_t *pinfo;
        pmix_data_array_t *darray;
        void *ptr;
        pmix_alloc_directive_t adir;
        pmix_resource_block_directive_t rbdir;
        pmix_alloc_inheritance_t inheritance;
        pmix_envar_t envar;
        pmix_coord_t *coord;
        pmix_link_state_t linkstate;
        pmix_job_state_t jstate;
        pmix_topology_t *topo;
        pmix_cpuset_t *cpuset;
        pmix_locality_t locality;
        pmix_geometry_t *geometry;
        pmix_device_type_t devtype;
        pmix_device_t *device;
        pmix_device_distance_t *devdist;
        pmix_endpoint_t *endpoint;
        pmix_data_buffer_t *dbuf;
        pmix_resource_unit_t *resunit;
        pmix_node_pid_t *nodepid;
        pmix_regex2_t *regex2;
    } data;
} pmix_value_t;
.EE
.UNINDENT
.UNINDENT
.SS Python Syntax
.INDENT 0.0
.INDENT 3.5
.sp
.EX
from pmix import *

foo = {\(aqvalue\(aq: value, \(aqval_type\(aq: type}
.EE
.UNINDENT
.UNINDENT
.sp
where \fBtype\fP is the PMIx datatype of \fBvalue\fP, and
\fBvalue\fP is the associated value expressed in the appropriate Python form
for the specified datatype
.SH DESCRIPTION
.sp
The \fIpmix_value_t\fP structure is used to represent the value passed to
PMIx_Put(3) \%<#\:man3-pmix-put> and retrieved by
PMIx_Get(3) \%<#\:man3-pmix-get>, as well as many of the other PMIx functions.
.sp
The \fBtype\fP field is a pmix_data_type_t(5) \%<#\:man5-pmix-data-type-t> value
identifying which member of the \fBdata\fP union is valid. A caller (or consumer)
must always set (or inspect) \fBtype\fP before accessing the union; reading a
union member other than the one indicated by \fBtype\fP is undefined.
.sp
The \fBdata\fP union holds the value itself, expressed in the form appropriate to
\fBtype\fP\&. Several of the union members are themselves PMIx datatypes, including
pmix_byte_object_t(5) \%<#\:man5-pmix-byte-object-t> (\fBbo\fP),
pmix_proc_t(5) \%<#\:man5-pmix-proc-t> (\fBproc\fP),
pmix_proc_info_t(5) \%<#\:man5-pmix-proc-info-t> (\fBpinfo\fP),
pmix_envar_t(5) \%<#\:man5-pmix-envar-t> (\fBenvar\fP), and
pmix_data_array_t(5) \%<#\:man5-pmix-data-array-t> (\fBdarray\fP).
.sp
A collection of values may be specified under a single key by passing a
\fIpmix_value_t\fP that contains an array of type
pmix_data_array_t(5) \%<#\:man5-pmix-data-array-t>, with each array element
containing its own object.
.SH STATIC INITIALIZER
.sp
A statically declared \fBpmix_value_t\fP may be initialized with the
\fBPMIX_VALUE_STATIC_INIT\fP macro, which sets \fBtype\fP to \fBPMIX_UNDEF\fP and clears the data union:
.INDENT 0.0
.INDENT 3.5
.sp
.EX
pmix_value_t value = PMIX_VALUE_STATIC_INIT;
.EE
.UNINDENT
.UNINDENT
.sp
\fBSee also:\fP
.INDENT 0.0
.INDENT 3.5
PMIx_Put(3) \%<#\:man3-pmix-put>,
PMIx_Get(3) \%<#\:man3-pmix-get>,
PMIx_Value_get_number(3) \%<#\:man3-pmix-value-get-number>,
PMIx_Value_unload(3) \%<#\:man3-pmix-value-unload>,
pmix_info_t(5) \%<#\:man5-pmix-info-t>,
pmix_data_array_t(5) \%<#\:man5-pmix-data-array-t>,
pmix_byte_object_t(5) \%<#\:man5-pmix-byte-object-t>
.UNINDENT
.UNINDENT
.SH Copyright
2014-2026, OpenPMIx Community
.\" End of generated man page.
