<< ValueFloat
 Top   Types   Functions   Classes   Index 
ValueBox >>

struct CrlValueRange / crl_value_range_t

Concrete Class


Description

Stores two values: a minimum and a maximum.

Both a and b are optional. It is required that both a and b are numeric.

The syntax in CRL is: a..b if both are present. As both may be missing, the following are also correct CRL syntax:

Most efficiently, a range's minimum and maximum slots can be accessed by minimum() and maximum() slot access functions.

Generically (see CrlStructure), a range's minimum and maximum can be accessed as a vector, which always has two elements:

Further, a Range emulates a map and always has the attributes

This wrapper is especially implemented for environments where only the CrlStructure interface is available, but not the interface for this special class, particularly in OptLa. If you use the native C/C++ library interface, better use the slot access directly.

Kinship

Immediate super class: ValueNumeric

Slots

ValueNumericSimple * maximum
ValueNumericSimple * minimum

Inherited Slots

int Object::class_id
int Object::heap_sig
int Object::ref_count
UserData Object::user_data

Members

CrlValueRange()
CrlValueRange(unsigned_t)
CrlValueRange(unsigned_t, unsigned_t)
CrlValueRange(Value *)
CrlValueRange(Value *, Value *)
CrlValueRange(ValueRange const &)
voidoperator=(ValueRange const &)
Value *find(char const * key) const
boolfind(float_t & result, char const * key) const
boolfind(float_t & result, Value const * key) const
boolfind(signed_t & result, char const * key) const
boolfind(signed_t & result, Value const * key) const
boolfind(unsigned_t & result, char const * key) const
boolfind(unsigned_t & result, Value const * key) const
Value *find(Value const * key) const
boolfind_bool(char const * key) const
boolfind_bool(Value const * key) const
boolfind_bool_sym(symbol_t key) const
byte_tfind_byte(char const * key) const
byte_tfind_byte(Value const * key) const
byte_tfind_byte_sym(symbol_t key) const
intfind_int(char const * key) const
intfind_int(Value const * key) const
intfind_int_sym(symbol_t key) const
Item *find_item(char const * key) const
Item *find_item(Value const * key) const
Item *find_item_sym(symbol_t key) const
char const *find_string(char const * key) const
char const *find_string(Value const * key) const
char const *find_string_sym(symbol_t key) const
Value *find_sym(symbol_t key) const
boolfind_sym(float_t & result, symbol_t key) const
boolfind_sym(signed_t & result, symbol_t key) const
boolfind_sym(unsigned_t & result, symbol_t key) const
symbol_tfind_symbol(char const * key) const
symbol_tfind_symbol(Value const * key) const
symbol_tfind_symbol_sym(symbol_t key) const
word32_tfind_word32(char const * key) const
word32_tfind_word32(Value const * key) const
word32_tfind_word32_sym(symbol_t key) const
Value *get()
Value const *get() const
boolget(float_t & result) const
boolhas(signed_t key) const
boolhas(char const * key) const
boolhas(Value const * key) const
boolhas_sym(symbol_t key) const
boolinvalidate()
boolis_special(signed_t key) const
boolis_special(char const * key) const
boolis_special(Value const * key) const
boolis_special_sym(symbol_t key) const
boolis_valid() const
boolis_valid_special() const
ValueNumericSimple *maximum() const
ValueNumericSimple *minimum() const
Value *nth(signed_t key) const
boolnth(float_t & result, signed_t key) const
boolnth(signed_t & result, signed_t key) const
boolnth(unsigned_t & result, signed_t key) const
boolnth_bool(signed_t key) const
byte_tnth_byte(signed_t key) const
intnth_int(signed_t key) const
Item *nth_item(signed_t key) const
char const *nth_string(signed_t key) const
symbol_tnth_symbol(signed_t key) const
word32_tnth_word32(signed_t key) const
boolpoke(Value * value)
boolpoke(Item * value)
boolpoke(char const * value)
boolpoke(unsigned_t value)
boolpoke_float(float_t value)
boolpoke_once(Value * value)
boolpoke_once(Item * value)
boolpoke_once(char const * value)
boolpoke_once(unsigned_t value)
boolpoke_once_float(float_t value)
boolpoke_once_signed(signed_t value)
boolpoke_once_symbol(symbol_t value)
boolpoke_signed(signed_t value)
boolpoke_symbol(symbol_t value)
boolreset(signed_t key)
boolreset(char const * key)
boolreset(Value const * key)
voidreset_maximum()
voidreset_minimum()
boolreset_sym(symbol_t key)
boolset(signed_t key, Value * value)
boolset(char const * key, Value * value)
boolset(char const * key, Item * value)
boolset(signed_t key, Item * value)
boolset(signed_t key, char const * value)
boolset(signed_t key, unsigned_t value)
boolset(char const * key, char const * value)
boolset(char const * key, unsigned_t value)
boolset(Value const * key, Value * value)
boolset(Value const * key, Item * value)
boolset(Value const * key, char const * value)
boolset(Value const * key, unsigned_t value)
boolset_float(char const * key, float_t value)
boolset_float(signed_t key, float_t value)
boolset_float(Value const * key, float_t value)
voidset_maximum(ValueNumericSimple *)
boolset_maximum(Value *)
boolset_maximum(AnyValue)
voidset_minimum(ValueNumericSimple *)
boolset_minimum(Value *)
boolset_minimum(AnyValue)
boolset_once(signed_t key, Value * value)
boolset_once(char const * key, Value * value)
boolset_once(char const * key, Item * value)
boolset_once(signed_t key, Item * value)
boolset_once(signed_t key, char const * value)
boolset_once(signed_t key, unsigned_t value)
boolset_once(char const * key, char const * value)
boolset_once(char const * key, unsigned_t value)
boolset_once(Value const * key, Value * value)
boolset_once(Value const * key, Item * value)
boolset_once(Value const * key, char const * value)
boolset_once(Value const * key, unsigned_t value)
boolset_once_float(char const * key, float_t value)
boolset_once_float(signed_t key, float_t value)
boolset_once_float(Value const * key, float_t value)
boolset_once_signed(signed_t key, signed_t value)
boolset_once_signed(char const * key, signed_t value)
boolset_once_signed(Value const * key, signed_t value)
boolset_once_sym(symbol_t key, Value * value)
boolset_once_sym(symbol_t key, Item * value)
boolset_once_sym(symbol_t key, char const * value)
boolset_once_sym(symbol_t key, unsigned_t value)
boolset_once_sym_float(symbol_t key, float_t value)
boolset_once_sym_signed(symbol_t key, signed_t value)
boolset_once_sym_symbol(symbol_t key, symbol_t value)
boolset_once_symbol(signed_t key, symbol_t value)
boolset_once_symbol(char const * key, symbol_t value)
boolset_once_symbol(Value const * key, symbol_t value)
boolset_signed(signed_t key, signed_t value)
boolset_signed(char const * key, signed_t value)
boolset_signed(Value const * key, signed_t value)
boolset_sym(symbol_t key, Value * value)
boolset_sym(symbol_t key, Item * value)
boolset_sym(symbol_t key, char const * value)
boolset_sym(symbol_t key, unsigned_t value)
boolset_sym_float(symbol_t key, float_t value)
boolset_sym_signed(symbol_t key, signed_t value)
boolset_sym_symbol(symbol_t key, symbol_t value)
boolset_symbol(signed_t key, symbol_t value)
boolset_symbol(char const * key, symbol_t value)
boolset_symbol(Value const * key, symbol_t value)

Inherited Members

From ClassC++C
Crl::address_default_user_print_file
Crl::address_default_user_print_vchar
Crl::bool_default_user_print_file
Crl::bool_default_user_print_vchar
Crl::context_default
Crl::enum_default_user_print_file
Crl::enum_default_user_print_vchar
Crl::float_default_user_print_file
Crl::float_default_user_print_vchar
Crl::get_string2symbol
Crl::get_string2symbol_default
Crl::get_user_data_delete_hook
Crl::gmt_default_user_print_file
Crl::gmt_default_user_print_vchar
Crl::identifier_default_user_print_file
Crl::identifier_default_user_print_vchar
Crl::is_c_identifier
Crl::is_initialised
Crl::is_lowcase_identifier
Crl::is_normalised_decimal
Crl::klass_id_to_crl_name
Crl::klass_id_to_name
Crl::set_handle_foreign_item
Crl::set_string2symbol
Crl::set_user_data_delete_hook
Crl::signed_default_user_print_file
Crl::signed_default_user_print_vchar
Crl::string2symbol
Crl::string_default_user_print_file
Crl::string_default_user_print_vchar
Crl::symbol_default_user_print_file
Crl::symbol_default_user_print_vchar
Crl::type_any
Crl::unsigned_default_user_print_file
Crl::unsigned_default_user_print_vchar
Object::operator delete
Object::operator new
Object::operator!=crl_value_range_is_not_equal
Object::operator<crl_value_range_is_less_than
Object::operator<=crl_value_range_is_less_equal
Object::operator==crl_value_range_is_equal
Object::operator>crl_value_range_is_greater_than
Object::operator>=crl_value_range_is_greater_equal
Object::_ref
Object::_ref_unref
Object::_unref
Object::_unref_no_delete
ValueNumeric::addcrl_value_range_add
Object::check_sigcrl_value_range_check_sig
Value::childcrl_value_range_get_child
Object::class_idcrl_value_range_get_class_id
Object::cmpcrl_value_range_cmp
Object::cmp_shallowcrl_value_range_cmp_shallow
ValueNumeric::get_boolcrl_value_range_get_bool
ValueNumeric::get_bytecrl_value_range_get_byte
ValueNumeric::get_intcrl_value_range_get_int
ValueNumeric::get_word32crl_value_range_get_word32
Object::graphcrl_value_range_get_graph_const
Object::hashcrl_value_range_hash
Object::hash_shallowcrl_value_range_hash_shallow
Object::heap_sigcrl_value_range_get_heap_sig
Value::item
Object::klass_idcrl_value_range_get_klass_id
Object::klass_namecrl_value_range_get_klass_name
Object::mapcrl_value_range_map
Object::map_subcrl_value_range_map_sub_with_data
ValueNumeric::negcrl_value_range_neg
Object::printcrl_value_range_print_vchar
Value::print_explicitcrl_value_range_print_explicit_file
Object::ref_count
Object::routinecrl_value_range_get_routine_const
Object::set_user_datacrl_value_range_set_user_data
Structure::skipcrl_value_range_skip
ValueNumeric::subcrl_value_range_sub
ValueNumeric::to_floatcrl_value_range_to_float
ValueNumeric::to_signedcrl_value_range_to_signed
ValueNumeric::to_unsignedcrl_value_range_to_unsigned
Object::to_vcharcrl_value_range_to_vchar
Object::user_datacrl_value_range_get_user_data_const


Detailed Descriptions


#if CRL_NEED_VALUE_RANGE

ValueNumericSimple * minimum () const

C++: CrlValueNumericSimple * CrlValueRange::minimum () const
C: crl_value_numeric_simple_t * crl_value_range_get_minimum (crl_value_range_t const * self)

Reader of slot 'minimum': The lowest possible value.

To write this slot, use set_minimum()/reset_minimum().

This reader is NULL safe; for this == NULL, it returns NULL.

#endif


#if CRL_NEED_VALUE_RANGE

void set_minimum (ValueNumericSimple *)

C++: void CrlValueRange::set_minimum (CrlValueNumericSimple *)
C: void crl_value_range_set_minimum (crl_value_range_t * self, crl_value_numeric_simple_t *)

Writer of slot 'minimum': The lowest possible value.

To read this slot, use minimum().

This writer must not be invoked with this == NULL.

#endif


#if CRL_NEED_VALUE_RANGE

void reset_minimum ()

C++: void CrlValueRange::reset_minimum ()
C: void crl_value_range_reset_minimum (crl_value_range_t * self)

NULL writer of slot 'minimum': The lowest possible value.

To read this slot, use minimum().

This writer must not be invoked with this == NULL.

#endif


#if CRL_NEED_VALUE_RANGE

ValueNumericSimple * maximum () const

C++: CrlValueNumericSimple * CrlValueRange::maximum () const
C: crl_value_numeric_simple_t * crl_value_range_get_maximum (crl_value_range_t const * self)

Reader of slot 'maximum': The highest possible value.

To write this slot, use set_maximum()/reset_maximum().

This reader is NULL safe; for this == NULL, it returns NULL.

#endif


#if CRL_NEED_VALUE_RANGE

void set_maximum (ValueNumericSimple *)

C++: void CrlValueRange::set_maximum (CrlValueNumericSimple *)
C: void crl_value_range_set_maximum (crl_value_range_t * self, crl_value_numeric_simple_t *)

Writer of slot 'maximum': The highest possible value.

To read this slot, use maximum().

This writer must not be invoked with this == NULL.

#endif


#if CRL_NEED_VALUE_RANGE

void reset_maximum ()

C++: void CrlValueRange::reset_maximum ()
C: void crl_value_range_reset_maximum (crl_value_range_t * self)

NULL writer of slot 'maximum': The highest possible value.

To read this slot, use maximum().

This writer must not be invoked with this == NULL.

#endif


#if CRL_NEED_VALUE_RANGE

[constructor] CrlValueRange ()

C++: CrlValueRange::CrlValueRange ()
C: crl_value_range_t * crl_value_range_new (void)

Creates a range with neither lower nor upper limit.

#endif


#if CRL_NEED_VALUE_RANGE

[constructor] CrlValueRange (unsigned_t)

C++: CrlValueRange::CrlValueRange (crl_unsigned_t)
C: crl_value_range_t * crl_value_range_new_with_value_unsigned (crl_unsigned_t)

Creates a range with lower limit = upper limit = given value

#endif


#if CRL_NEED_VALUE_RANGE

[constructor] CrlValueRange (unsigned_t, unsigned_t)

C++: CrlValueRange::CrlValueRange (crl_unsigned_t, crl_unsigned_t)
C: crl_value_range_t * crl_value_range_new_with_range_unsigned (crl_unsigned_t, crl_unsigned_t)

Creates a range with both limits given.

#endif


#if CRL_NEED_VALUE_RANGE

[constructor] CrlValueRange (Value *)

C++: CrlValueRange::CrlValueRange (CrlValue *)
C: crl_value_range_t * crl_value_range_new_with_value (crl_value_t *)

Creates a range with lower limit = upper limit = given value

#endif


#if CRL_NEED_VALUE_RANGE

[constructor] CrlValueRange (Value *, Value *)

C++: CrlValueRange::CrlValueRange (CrlValue *, CrlValue *)
C: crl_value_range_t * crl_value_range_new_with_range (crl_value_t *, crl_value_t *)

Creates a range with both limits given.

#endif


#if CRL_NEED_VALUE_RANGE

[constructor] CrlValueRange (ValueRange const &)

C++: CrlValueRange::CrlValueRange (CrlValueRange const &)
C: crl_value_range_t * crl_value_range_new_copy (crl_value_range_t const *)

Copy constructor

#endif


#if CRL_NEED_VALUE_RANGE

void operator= (ValueRange const &)

C++: void CrlValueRange::operator= (CrlValueRange const &)
C: void crl_value_range_assign (crl_value_range_t * self, crl_value_range_t const *)

Assignment operator

#endif


#if CRL_NEED_VALUE_RANGE

bool set_minimum (Value *)

C++: bool CrlValueRange::set_minimum (CrlValue *)
C: crl_bool_t crl_value_range_set_minimum_generic (crl_value_range_t * self, crl_value_t *)

This in a convenience wrapper that tries to cast to <