<< ValueRange
 Top   Types   Functions   Classes   Index 
ValueItem >>

struct CrlValueBox / crl_value_box_t

Concrete Class


Description

This is a box that contains another value. It cannot be stored or loaded in CRL, instead, the value contained will be stored and read. This is handy for attributes of which you do not know the value when creating the CRL structure for it: simply put a ValueBox with NULL there and replace the NULL by the value you want later. For convenience, the box may be given a name().

Access is transparent: all next_index(), nth(), etc. stuff is passed to the child. set_nth requests will create a new ValueVector on the fly if the box still contains NULL. Similarly, set_sym will generate a new ValueMap on the fly.

A related set of classes, CrlValueRef, implements an lvalue, while this is like an SML reference/pointer.

Kinship

Immediate super class: Value

Slots

Value * child
symbol_t name

Inherited Slots

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

Members

CrlValueBox()
CrlValueBox(symbol_t)
CrlValueBox(symbol_t, Value *)
CrlValueBox(ValueBox const &)
voidoperator=(ValueBox const &)
boolappend(Value * value)
boolappend(Item * value)
boolappend(char const * value)
boolappend(unsigned_t value)
boolappend_float(float_t value)
boolappend_signed(signed_t value)
boolappend_symbol(symbol_t value)
Value *child() const
Value *find(char const * key) const
boolfind(float_t & result, char const * key) const
boolfind(float_t & result, Item const * key) const
boolfind(float_t & result, Value const * key) const
Value *find(Item const * key) const
boolfind(signed_t & result, char const * key) const
boolfind(signed_t & result, Item const * key) const
boolfind(signed_t & result, Value const * key) const
boolfind(unsigned_t & result, char const * key) const
boolfind(unsigned_t & result, Item 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(Item 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(Item 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(Item 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(Item 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(Item const * key) const
char const *find_string(Value const * key) const
char const *find_string_sym(symbol_t key) const
boolfind_sym(float_t & result, symbol_t key) const
boolfind_sym(signed_t & result, symbol_t key) const
Value *find_sym(symbol_t key) const
boolfind_sym(unsigned_t & result, symbol_t key) const
symbol_tfind_symbol(char const * key) const
symbol_tfind_symbol(Item 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(Item const * key) const
word32_tfind_word32(Value const * key) const
word32_tfind_word32_sym(symbol_t key) const
Value *get() const
boolget(float_t & result) const
boolget(signed_t & result) const
boolget(unsigned_t & result) const
boolget_bool() const
byte_tget_byte() const
intget_int() const
Item *get_item() const
char const *get_string() const
symbol_tget_symbol() const
word32_tget_word32() const
boolhas(char const * key) const
boolhas(Item const * key) const
boolhas(signed_t key) const
boolhas(Value const * key) const
boolhas_sym(symbol_t key) const
boolinvalidate()
boolis_special(char const * key) const
boolis_special(Item const * key) const
boolis_special(signed_t key) const
boolis_special(Value const * key) const
boolis_special_sym(symbol_t key) const
boolis_valid() const
boolis_valid_special() const
symbol_tname() const
index_tnext_index() 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(char const * key)
boolreset(Item const * key)
boolreset(signed_t key)
boolreset(Value const * key)
voidreset_child()
boolreset_sym(symbol_t key)
boolset(char const * key, Value * value)
boolset(char const * key, Item * value)
boolset(Item const * key, Value * value)
boolset(Item const * key, Item * value)
boolset(Item const * key, char const * value)
boolset(Item const * key, unsigned_t value)
boolset(signed_t key, Value * 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)
voidset_child(Value *)
boolset_float(char const * key, float_t value)
boolset_float(Item const * key, float_t value)
boolset_float(signed_t key, float_t value)
boolset_float(Value const * key, float_t value)
voidset_name(symbol_t)
boolset_once(char const * key, Value * value)
boolset_once(char const * key, Item * value)
boolset_once(Item const * key, Value * value)
boolset_once(Item const * key, Item * value)
boolset_once(Item const * key, char const * value)
boolset_once(Item const * key, unsigned_t value)
boolset_once(signed_t key, Value * 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(Item 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(Item const * key, signed_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(Item const * 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(Item const * key, signed_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(Item const * 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_box_is_not_equal
Object::operator<crl_value_box_is_less_than
Object::operator<=crl_value_box_is_less_equal
Object::operator==crl_value_box_is_equal
Object::operator>crl_value_box_is_greater_than
Object::operator>=crl_value_box_is_greater_equal
Object::_ref
Object::_ref_unref
Object::_unref
Object::_unref_no_delete
Object::check_sigcrl_value_box_check_sig
Object::class_idcrl_value_box_get_class_id
Object::cmpcrl_value_box_cmp
Object::cmp_shallowcrl_value_box_cmp_shallow
Object::graphcrl_value_box_get_graph_const
Object::hashcrl_value_box_hash
Object::hash_shallowcrl_value_box_hash_shallow
Object::heap_sigcrl_value_box_get_heap_sig
Value::item
Object::klass_idcrl_value_box_get_klass_id
Object::klass_namecrl_value_box_get_klass_name
Object::mapcrl_value_box_map
Object::map_subcrl_value_box_map_sub_with_data
Object::printcrl_value_box_print_vchar
Value::print_explicitcrl_value_box_print_explicit_file
Object::ref_count
Object::routinecrl_value_box_get_routine_const
Object::set_user_datacrl_value_box_set_user_data
Structure::skipcrl_value_box_skip
Object::to_vcharcrl_value_box_to_vchar
Object::user_datacrl_value_box_get_user_data_const


Detailed Descriptions


#if CRL_NEED_VALUE_BOX

symbol_t name () const

C++: crl_symbol_t CrlValueBox::name () const
C: crl_symbol_t crl_value_box_get_name (crl_value_box_t const * self)

Reader of slot 'name': The name of this box.

To write this slot, use set_name().

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

#endif


#if CRL_NEED_VALUE_BOX

void set_name (symbol_t)

C++: void CrlValueBox::set_name (crl_symbol_t)
C: void crl_value_box_set_name (crl_value_box_t * self, crl_symbol_t)

Writer of slot 'name': The name of this box.

To read this slot, use set_name().

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

#endif


#if CRL_NEED_VALUE_BOX

Value * child () const

C++: CrlValue * CrlValueBox::child () const
C: crl_value_t * crl_value_box_get_child (crl_value_box_t const * self)

Reader of slot 'child': The child of this box.

To write this slot, use set_child()/reset_child().

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

#endif


#if CRL_NEED_VALUE_BOX

void set_child (Value *)

C++: void CrlValueBox::set_child (CrlValue *)
C: void crl_value_box_set_child (crl_value_box_t * self, crl_value_t *)

Writer of slot 'child': The child of this box.

To read this slot, use child().

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

#endif


#if CRL_NEED_VALUE_BOX

void reset_child ()

C++: void CrlValueBox::reset_child ()
C: void crl_value_box_reset_child (crl_value_box_t * self)

NULL writer of slot 'child': The child of this box.

To read this slot, use child().

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

#endif


#if CRL_NEED_VALUE_BOX

[constructor] CrlValueBox ()

C++: CrlValueBox::CrlValueBox ()
C: crl_value_box_t * crl_value_bo