PROP_NUMBER(3) Library Functions Manual PROP_NUMBER(3)

NAME

prop_number, prop_number_create_integer, prop_number_create_unsigned_integer, prop_number_copy, prop_number_size, prop_number_unsigned, prop_number_integer_value, prop_number_unsigned_integer_value, prop_number_equals, prop_number_equals_integer, prop_number_equals_unsigned_integernumeric value property object

LIBRARY

Property Container Object Library (libprop, -lprop)

SYNOPSIS

#include <prop/proplib.h>

prop_number_t
prop_number_create_integer(int64_t val);

prop_number_t
prop_number_create_unsigned_integer(uint64_t val);

prop_number_t
prop_number_copy(prop_number_t number);

int
prop_number_size(prop_number_t number);

bool
prop_number_unsigned(prop_number_t number);

int64_t
prop_number_integer_value(prop_number_t number);

uint64_t
prop_number_unsigned_integer_value(prop_number_t number);

bool
prop_number_equals(prop_number_t num1, prop_number_t num2);

bool
prop_number_equals_integer(prop_number_t number, int64_t val);

bool
prop_number_equals_unsigned_integer(prop_number_t number, uint64_t val);

DESCRIPTION

The prop_number family of functions operate on a numeric value property object type. Values are either signed or unsigned, and promoted to a 64-bit type (int64_t or uint64_t, respectively).

It is possible to compare number objects that differ in sign. Such comparisons first test to see if each object is within the valid number range of the other:

Number objects have a different externalized representation depending on their sign:

When numbers are internalized, the sign of the resulting number object (and thus its valid range) is determined by a set of rules evaluated in the following order:

prop_number_create_integer(int64_t val)
Create a numeric value object with the signed value val. Returns NULL on failure.
prop_number_create_unsigned_integer(uint64_t val)
Create a numeric value object with the unsigned value val. Returns NULL on failure.
prop_number_copy(prop_number_t number)
Copy a numeric value object. If the supplied object isn't a numeric value, NULL is returned.
prop_number_size(prop_number_t number)
Returns 8, 16, 32, or 64, representing the number of bits required to hold the value of the object. If the supplied object isn't a numeric value, NULL is returned.
prop_number_unsigned(prop_number_t number)
Returns true if the numeric value object has an unsigned value.
prop_number_integer_value(prop_number_t number)
Returns the signed integer value of the numeric value object. If the supplied object isn't a numeric value, zero is returned. Thus, it is not possible to distinguish between “not a prop_number_t” and “prop_number_t has a value of 0”.
prop_number_unsigned_integer_value(prop_number_t number)
Returns the unsigned integer value of the numeric value object. If the supplied object isn't a numeric value, zero is returned. Thus, it is not possible to distinguish between “not a prop_number_t” and “prop_number_t has a value of 0”.
prop_number_equals(prop_number_t num1, prop_number_t num2)
Returns true if the two numeric value objects are equivalent. If at least one of the supplied objects isn't a numeric value, false is returned.
prop_number_equals_integer(prop_number_t number, int64_t val)
Returns true if the object's value is equivalent to the signed value val. If the supplied object isn't a numerical value or if val exceeds INT64_MAX, false is returned.
prop_number_equals_unsigned_integer(prop_number_t number, uint64_t val)
Returns true if the object's value is equivalent to the unsigned value val. If the supplied object isn't a numerical value or if val exceeds INT64_MAX, false is returned.

SEE ALSO

prop_array(3), prop_bool(3), prop_data(3), prop_dictionary(3), prop_object(3), prop_string(3), proplib(3)

HISTORY

The proplib property container object library first appeared in NetBSD 4.0.
January 21, 2008 NetBSD 6.1