Description

The scf_value_create() function creates a new, reset scf_value_t that holds a single
typed value. The value can be used only with the handle specified
by h and objects associated with h.

The scf_value_reset() function resets the value to the uninitialized state. The scf_value_destroy()
function deallocates the object.

The scf_value_type() function retrieves the type of the contents of v. The
scf_value_is_type() function determines if a value is of a particular type or
any of its subtypes. The scf_type_base_type() function returns the base type of type.
The scf_value_base_type() function returns the true base type of the value (the
highest type reachable from the value's type).

The scf_value_get_as_string() and scf_value_get_as_string_typed() functions convert the value to a string form.
For scf_value_get_as_string_typed(), the value must be a reachable subtype of type.

The scf_value_set_boolean(), scf_value_set_count(), scf_value_set_integer(), scf_value_set_time(), scf_value_set_astring(), scf_value_set_ustring(), and scf_value_set_opaque() functions set v
to a particular value of a particular type.

The scf_value_set_from_string() function is the inverse of scf_value_get_as_string(). It sets v to
the value encoded in buf of type type.

The scf_value_set_*() functions will succeed on scf_value_t objects that have already been
set.

Upon successful completion, scf_value_get_astring(), scf_value_get_ustring(), scf_value_get_as_string(), and scf_value_get_as_string_typed() return the length of
the source string, not including the terminating null byte. Otherwise, they return -1.

Upon successful completion, scf_value_get_opaque() returns the number of bytes written. Otherwise, it
returns -1.

Errors

The scf_value_create() function will fail if:

SCF_ERROR_HANDLE_DESTROYED

The handle associated with h has been destroyed.

SCF_ERROR_INVALID_ARGUMENT

The handle is NULL.

SCF_ERROR_NO_MEMORY

There is not enough memory to allocate an scf_value_t.

The scf_value_handle() function will fail if:

SCF_ERROR_HANDLE_DESTROYED

The handle associated with v has been destroyed.

The scf_value_set_time() function will fail if:

SCF_ERROR_INVALID_ARGUMENT

The nanoseconds field is not in the range 0 <= ns < 1,000,000,000.

The scf_type_base_type() function will fail if:

SCF_ERROR_INVALID_ARGUMENT

The type argument is not a valid type.

The scf_value_set_astring(), scf_value_set_ustring(), scf_value_set_opaque(), and scf_value_set_from_string() functions will fail if:

SCF_ERROR_INVALID_ARGUMENT

The in argument is not a valid value for the specified type or is longer than the maximum supported value length.

The scf_type_base_type(), scf_value_is_type(), and scf_value_get_as_string_typed() functions will fail if: