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_integer 
numeric 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
64bit 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:
o Signed numbers that are greater than or equal to 0 can be compared to
unsigned numbers.
o Unsigned numbers that are less than or equal to the largest signed
64bit value (INT64_MAX) can be compared to signed numbers.
Number objects have a different externalized representation depending on
their sign:
o Signed numbers are externalized in base10 (decimal).
o Unsigned numbers are externalized in base16 (hexadecimal).
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:
o If the first character of the number is a `' then the number is
signed.
o If the first two characters of the number are `0x' then the number is
unsigned.
o If the number value fits into the range of a signed number then the
number is signed.
o In all other cases, the number is unsigned.
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.
NetBSD 6.1.5 January 21, 2008 NetBSD 6.1.5
