struct CrlValueList / crl_value_list_t
Concrete Class
Description
List style storage. Has the same CRL syntax as vectors.
When read from a CRL file, lists read back as vectors until the
day we implement type declarations in CRL.
To be compatible with vectors, lists have a lot of access functions.
Most of them are quite inefficient because accessing a list with
an integer index i needs O(i) time. If you access lists directly,
use the functions that work on list_key_t instead, which provide
direct access to the list cell.
Kinship
Immediate super class: ValueNested
Slots
Inherited Slots
Members
| | CrlValueList | | () |
| | CrlValueList | | (ValueList const &) |
| void | | operator= | | (ValueList const &) |
| list_key_t | | append | | (AnyValue) |
| list_key_t | | append | | (Value * value) |
| list_key_t | | append | | (Item * value) |
| list_key_t | | append | | (char const * value) |
| list_key_t | | append | | (unsigned_t value) |
| list_key_t | | append_float | | (float_t value) |
| list_key_t | | append_signed | | (signed_t value) |
| list_key_t | | append_symbol | | (symbol_t value) |
| list_key_t | | back | | () const |
| ListValue const * | | children | | () const |
| bool | | empty | | () const |
| void | | erase | | (list_key_t key) |
| void | | erase | | (list_key_t & iter, list_key_t key) |
| void | | erase | | (signed_t) |
| bool | | find | | (float_t & result, Value const * key) const |
| bool | | find | | (signed_t & result, Value const * key) const |
| bool | | find | | (unsigned_t & result, Value const * key) const |
| Value * | | find | | (Value const * key) const |
| bool | | find_bool | | (Value const * key) const |
| byte_t | | find_byte | | (Value const * key) const |
| int | | find_int | | (Value const * key) const |
| Item * | | find_item | | (Value const * key) const |
| char const * | | find_string | | (Value const * key) const |
| symbol_t | | find_symbol | | (Value const * key) const |
| word32_t | | find_word32 | | (Value const * key) const |
| Value * | | first | | () const |
| list_key_t | | front | | () const |
| Value * | | get | | () |
| Value const * | | get | | () const |
| bool | | has | | (list_key_t key) const |
| bool | | has | | (signed_t key) const |
| bool | | has | | (Value const * key) const |
| list_key_t | | insert_after | | (list_key_t nth, Value *) |
| list_key_t | | insert_after | | (list_key_t nth, AnyValue) |
| list_key_t | | insert_before | | (list_key_t key, Value *) |
| list_key_t | | insert_before | | (list_key_t nth, AnyValue) |
| bool | | invalidate | | () |
| bool | | is_special | | (signed_t key) const |
| bool | | is_special | | (Value const * key) const |
| bool | | is_valid | | () const |
| bool | | is_valid_special | | () const |
| Value * | | last | | () const |
| int | | nentries | | () const |
| list_key_t | | next | | (list_key_t) const |
| index_t | | next_index | | () const |
| bool | | non_empty | | () const |
| Value * | | nth | | (signed_t key) const |
| bool | | nth | | (float_t & result, signed_t key) const |
| bool | | nth | | (signed_t & result, signed_t key) const |
| bool | | nth | | (unsigned_t & result, signed_t key) const |
| bool | | nth_bool | | (signed_t key) const |
| byte_t | | nth_byte | | (signed_t key) const |
| int | | nth_int | | (signed_t key) const |
| Item * | | nth_item | | (signed_t key) const |
| char const * | | nth_string | | (signed_t key) const |
| symbol_t | | nth_symbol | | (signed_t key) const |
| word32_t | | nth_word32 | | (signed_t key) const |
| bool | | poke | | (Value * value) |
| bool | | poke_once | | (Value * value) |
| list_key_t | | prepend | | (Value *) |
| list_key_t | | prepend | | (AnyValue) |
| list_key_t | | previous | | (list_key_t) const |
| void | | reset | | (list_key_t key) |
| void | | reset | | (signed_t key) |
| bool | | reset | | (Value const * key) |
| void | | rtrim | | () |
| void | | set | | (list_key_t key, Value * value) |
| void | | set | | (list_key_t key, AnyValue value) |
| void | | set | | (signed_t key, Value * value) |
| void | | set | | (signed_t key, Item * value) |
| void | | set | | (signed_t key, char const * value) |
| void | | set | | (signed_t key, unsigned_t value) |
| bool | | set | | (Value const * key, Value * value) |
| bool | | set | | (Value const * key, Item * value) |
| bool | | set | | (Value const * key, char const * value) |
| bool | | set | | (Value const * key, unsigned_t value) |
| void | | set_float | | (signed_t key, float_t value) |
| bool | | set_float | | (Value const * key, float_t value) |
| bool | | set_once | | (list_key_t key, Value * value) |
| bool | | set_once | | (list_key_t key, AnyValue value) |
| bool | | set_once | | (signed_t key, Value * value) |
| bool | | set_once | | (signed_t key, Item * value) |
| bool | | set_once | | (signed_t key, char const * value) |
| bool | | set_once | | (signed_t key, unsigned_t value) |
| bool | | set_once | | (Value const * key, Value * value) |
| bool | | set_once | | (Value const * key, Item * value) |
| bool | | set_once | | (Value const * key, char const * value) |
| bool | | set_once | | (Value const * key, unsigned_t value) |
| bool | | set_once_float | | (signed_t key, float_t value) |
| bool | | set_once_float | | (Value const * key, float_t value) |
| bool | | set_once_signed | | (signed_t key, signed_t value) |
| bool | | set_once_signed | | (Value const * key, signed_t value) |
| bool | | set_once_symbol | | (signed_t key, symbol_t value) |
| bool | | set_once_symbol | | (Value const * key, symbol_t value) |
| void | | set_signed | | (signed_t key, signed_t value) |
| bool | | set_signed | | (Value const * key, signed_t value) |
| void | | set_symbol | | (signed_t key, symbol_t value) |
| bool | | set_symbol | | (Value const * key, symbol_t value) |
| Value * | | value | | (list_key_t) const |
| bool | | value | | (unsigned_t & result, list_key_t) const |
| bool | | value | | (signed_t & result, list_key_t) const |
| bool | | value_bool | | (list_key_t) const |
| int | | value_int | | (list_key_t) const |
| char const * | | value_string | | (list_key_t) const |
| symbol_t | | value_symbol | | (list_key_t) const |
| ListValue const * | | values | | () const |
Inherited Members
Detailed Descriptions
#if CRL_NEED_VALUE_LIST
ListValue const * children () const
| C++: |
CrlListValue const * CrlValueList::children () const |
| C: |
CrlListValue const * crl_value_list_get_children (crl_value_list_t const * self) |
Reader of slot 'children': The list of child values.
cross reference removal is not yet implemented
This reader is NULL safe; for this == NULL, it returns NULL.
#if CRL_NEED_VALUE_LIST
[constructor] CrlValueList ()
#if CRL_NEED_VALUE_LIST
[constructor] CrlValueList (ValueList const &)
#if CRL_NEED_VALUE_LIST
void operator= (ValueList const &)
#if CRL_NEED_VALUE_LIST
ListValue const * values () const
This function redirects execution to children().
The implementation is NULL-safe; for this == NULL, this function returns NULL.
#if CRL_NEED_VALUE_LIST
int nentries () const
limited editing:
NULL safe: if this == NULL, returns 0
#if CRL_NEED_VALUE_LIST
bool empty () const
NULL safe: if this == NULL, returns true
#if CRL_NEED_VALUE_LIST
bool non_empty () const
NULL safe: if this == NULL, returns false
#if CRL_NEED_VALUE_LIST
list_key_t front () const
#if CRL_NEED_VALUE_LIST
list_key_t back () const
#if CRL_NEED_VALUE_LIST
Value * first () const
#if CRL_NEED_VALUE_LIST
Value * last () const
#if CRL_NEED_VALUE_LIST
Value * value (list_key_t) const
If you want to do something like value(k)->get_bool(), use
value_bool(k) instead. This also holds for type-exports to
int, symbol, string, unsigned_t, signed_t.
#if CRL_NEED_VALUE_LIST
bool value_bool (list_key_t) const
| C++: |
bool CrlValueList::value_bool (crl_list_key_t) const |
| C: |
crl_bool_t crl_value_list_value_bool (crl_value_list_t const * self, crl_list_key_t) |
Just to be in sync with the get(), nth() and find() methods, we'll have
the usual inlined cast functions here, too.
Always preferable over value(k)->get_bool().
This does essentially the same, but potentially works for more cases.
See Structure::nth() for a longer explanation.
#if CRL_NEED_VALUE_LIST
int value_int (list_key_t) const
Always preferable over value(k)->get_int().
This does essentially the same, but potentially works for more cases.
See Structure::nth() for a longer explanation.
#if CRL_NEED_VALUE_LIST
symbol_t value_symbol (list_key_t) const
Always preferable over value(k)->get_symbol().
This does essentially the same, but potentially works for more cases.
See Structure::nth() for a longer explanation.
#if CRL_NEED_VALUE_LIST
char const * value_string (list_key_t) const
| C++: |
char const * CrlValueList::value_string (crl_list_key_t) const |
| C: |
char const * crl_value_list_value_string (crl_value_list_t const * self, crl_list_key_t) |
Always preferable over value(k)->get_string().
This does essentially the same, but potentially works for more cases.
See Structure::nth() for a longer explanation.
#if CRL_NEED_VALUE_LIST
bool value (unsigned_t & result, list_key_t) const
| C++: |
bool CrlValueList::value (crl_unsigned_t & result, crl_list_key_t) const |
| C: |
crl_bool_t crl_value_list_value_unsigned (crl_unsigned_t * result, crl_value_list_t const * self, crl_list_key_t) |
Always preferable over value(k)->get(x).
This does essentially the same, but potentially works for more cases.
See Structure::nth() for a longer explanation.
#if CRL_NEED_VALUE_LIST
bool value (signed_t & result, list_key_t) const
| C++: |
bool CrlValueList::value (crl_signed_t & result, crl_list_key_t) const |
| C: |
crl_bool_t crl_value_list_value_signed (crl_signed_t * result, crl_value_list_t const * self, crl_list_key_t) |
Always preferable over value(k)->get(x).
This does essentially the same, but potentially works for more cases.
See Structure::nth() for a longer explanation.
#if CRL_NEED_VALUE_LIST
list_key_t next (list_key_t) const
| C++: |
crl_list_key_t CrlValueList::next (crl_list_key_t) const |
| C: |
crl_list_key_t crl_value_list_next (crl_value_list_t const * self, crl_list_key_t) |
#if CRL_NEED_VALUE_LIST
list_key_t previous (list_key_t) const
| C++: |
crl_list_key_t CrlValueList::previous (crl_list_key_t) const |
| C: |
crl_list_key_t crl_value_list_previous (crl_value_list_t const * self, crl_list_key_t) |
#if CRL_NEED_VALUE_LIST
list_key_t prepend (Value *)
list append, but returns front() for NULL
#if CRL_NEED_VALUE_LIST
list_key_t insert_before (list_key_t key, Value *)
list append and prepend, but returns 'key' for NULL
#if CRL_NEED_VALUE_LIST
list_key_t insert_after (list_key_t nth, Value *)
list append and prepend, but returns 'key' for NULL
#if CRL_NEED_VALUE_LIST
void erase (list_key_t key)
#if CRL_NEED_VALUE_LIST
void erase (list_key_t & iter, list_key_t key)
| C++: |
void CrlValueList::erase (crl_list_key_t & iter, crl_list_key_t key) |
| C: |
void crl_value_list_erase_in_loop (crl_value_list_t * self, crl_list_key_t * iter, crl_list_key_t key) |
#if CRL_NEED_VALUE_LIST
void reset (list_key_t key)
#if CRL_NEED_VALUE_LIST
bool has (list_key_t key) const
#if CRL_NEED_VALUE_LIST
void set (list_key_t key, Value * value)
#if CRL_NEED_VALUE_LIST
bool set_once (list_key_t key, Value * value)
#if CRL_NEED_VALUE_LIST
void set (list_key_t key, AnyValue value)
#if CRL_NEED_VALUE_LIST
bool set_once (list_key_t key, AnyValue value)
#if CRL_NEED_VALUE_LIST
list_key_t append (AnyValue)
#if CRL_NEED_VALUE_LIST
list_key_t prepend (AnyValue)