Content-type: text/html Man page of scf_value_create

scf_value_create

Section: Service Configuration Facility Library Functions (3SCF)
Updated: 10 Oct 2007
Index Return to Main Contents
 

NAME

scf_value_create, scf_value_handle, scf_value_reset, scf_value_destroy, scf_value_type, scf_value_base_type, scf_value_is_type, scf_type_base_type, scf_value_get_boolean, scf_value_get_count, scf_value_get_integer, scf_value_get_time, scf_value_get_astring, scf_value_get_ustring, scf_value_get_opaque, scf_value_get_as_string, scf_value_get_as_string_typed, scf_value_set_boolean, scf_value_set_count, scf_value_set_integer, scf_value_set_time, scf_value_set_from_string, scf_value_set_astring, scf_value_set_ustring, scf_value_set_opaque - manipulate values in the Service Configuration Facility  

SYNOPSIS

cc [ flag... ] file... -lscf [ library... ] 
#include <libscf.h>

scf_value_t *scf_value_create(scf_handle_t *h);

scf_handle_t *scf_value_handle(scf_value_t *v);

void scf_value_reset(scf_value_t *v);

void scf_value_destroy(scf_value_t *v);

int scf_value_type(scf_value_t *v);

int scf_value_base_type(scf_value_t *v);

int scf_value_is_type(scf_value_t *v, scf_type_t type);

int scf_type_base_type(scf_type_t type, scf_type_t *out);

int scf_value_get_boolean(scf_value_t *v, uint8_t *out);

int scf_value_get_count(scf_value_t *v, uint64_t *out);

int scf_value_get_integer(scf_value_t *v, int64_t *out);

int scf_value_get_time(scf_value_t *v, int64_t *seconds,
    int32_t *ns);

ssize_t scf_value_get_astring(scf_value_t *v, char *buf,
    size_t size);

ssize_t scf_value_get_ustring(scf_value_t *v, char *buf,
    size_t size);

ssize_t scf_value_get_opaque(scf_value_t *v, char *out,
    size_t len);

ssize_t scf_value_get_as_string(scf_value_t *v, char *buf,
    size_t size);

ssize_t scf_value_get_as_string_typed(scf_value_t *v,
    scf_type_t type, char *buf, size_t size);

void scf_value_set_boolean(scf_value_t *v, uint8_t in);

void scf_value_set_count(scf_value_t *v, uint64_t in);

void scf_value_set_integer(scf_value_t *v, int64_t in);

int scf_value_set_time(scf_value_t *v, int64_t seconds,
    int32_t ns);

int scf_value_set_from_string(scf_value_t *v, scf_type_t type,
    char *in);

int scf_value_set_astring(scf_value_t *v, const char *in);

int scf_value_set_ustring(scf_value_t *v, const char *in);

int scf_value_set_opaque(scf_value_t *v, void *in, size_t sz);

 

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).

Type IdentifierBase TypeType Description

SCF_TYPE_INVALIDreserved invalid type
SCF_TYPE_BOOLEAN
SCF_TYPE_COUNT
SCF_TYPE_INTEGER
SCF_TYPE_TIME
SCF_TYPE_ASTRING
SCF_TYPE_OPAQUE
SCF_TYPE_USTRING
SCF_TYPE_URI
SCF_TYPE_FMRI
SCF_TYPE_HOST
SCF_TYPE_HOSTNAME
SCF_TYPE_NET_ADDR_V4
SCF_TYPE_NET_ADDR_V6

The scf_value_get_boolean(), scf_value_get_count(), scf_value_get_integer(), scf_value_get_time(), scf_value_get_astring(), scf_value_get_ustring(), and scf_value_get_opaque() functions read a particular type of value from v.

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.  

RETURN VALUES

Upon successful completion, scf_value_create() returns a new, reset scf_value_t. Otherwise, it returns NULL.

Upon successful completion, scf_value_handle() returns the handle associated with v. Otherwise, it returns NULL.

The scf_value_base_type() function returns the base type of the value, or SCF_TYPE_INVALID on failure.

Upon successful completion, scf_value_type() returns the type of the value. Otherwise, it returns SCF_TYPE_INVALID.

Upon successful completion, scf_value_is_type(), scf_value_get_boolean(), scf_value_get_count(), scf_value_get_integer(), scf_value_get_time(), scf_value_set_time(), scf_value_set_from_string(), scf_value_set_astring(), scf_value_set_ustring(), and scf_value_set_opaque() return 0. Otherwise, they return -1.

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 string written, 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_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 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:

SCF_ERROR_INVALID_ARGUMENT

The type argument is not a valid type.

The scf_value_type(), scf_value_base_type(), scf_value_get_boolean(), scf_value_get_count(), scf_value_get_integer(), scf_value_get_time(), scf_value_get_astring(), scf_value_get_ustring(), scf_value_get_as_string(), andscf_value_get_as_string_typed() functions will fail if:

SCF_ERROR_NOT_SET

The v argument has not been set to a value.

The scf_value_get_boolean(), scf_value_get_count(), scf_value_get_integer(), scf_value_get_time(), scf_value_get_astring(), scf_value_get_ustring(), and scf_value_get_as_string_typed() functions will fail if:

SCF_ERROR_TYPE_MISMATCH

The requested type is not the same as the value's type and is not in the base-type chain.

The scf_error(3SCF) function can be used to retrieve the error value.  

ATTRIBUTES

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPEATTRIBUTE VALUE

Interface StabilityCommitted

MT-Level

 

SEE ALSO

libscf(3LIB), scf_entry_add_value(3SCF), scf_error(3SCF), attributes(5)


 

Index

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUES
ERRORS
ATTRIBUTES
SEE ALSO

This document was created by man2html, using the manual pages.
Time: 02:39:18 GMT, October 02, 2010