Data Structures | Typedefs | Functions
Generic Value List management

Data Structures

struct  _Eina_Value_List
 Used to store the list and its subtype. More...
 

Typedefs

typedef struct _Eina_Value_List Eina_Value_List
 Value type for EINA_VALUE_TYPE_LIST. More...
 

Functions

EAPI Eina_Valueeina_value_list_new (const Eina_Value_Type *subtype)
 Creates generic value storage of type list. More...
 
static Eina_Bool eina_value_list_setup (Eina_Value *value, const Eina_Value_Type *subtype)
 Initializes generic value storage of type list. More...
 
static unsigned int eina_value_list_count (const Eina_Value *value)
 Queries number of elements in value of list type. More...
 
static Eina_Bool eina_value_list_remove (Eina_Value *value, unsigned int position)
 Removes element at given position in value of list type. More...
 
static Eina_Bool eina_value_list_set (Eina_Value *value, unsigned int position,...)
 Sets the generic value in a list member. More...
 
static Eina_Bool eina_value_list_get (const Eina_Value *value, unsigned int position,...)
 Gets the generic value from a list member. More...
 
static Eina_Bool eina_value_list_insert (Eina_Value *value, unsigned int position,...)
 Inserts the generic value in a list member position. More...
 
static Eina_Bool eina_value_list_append (Eina_Value *value,...)
 Appends the generic value in a list. More...
 
static Eina_Bool eina_value_list_vset (Eina_Value *value, unsigned int position, va_list args)
 Sets the generic value in a list member. More...
 
static Eina_Bool eina_value_list_vget (const Eina_Value *value, unsigned int position, va_list args)
 Gets the generic value from a list member. More...
 
static Eina_Bool eina_value_list_vinsert (Eina_Value *value, unsigned int position, va_list args)
 Inserts the generic value in a list member position. More...
 
static Eina_Bool eina_value_list_vappend (Eina_Value *value, va_list args)
 Appends the generic value in a list. More...
 
static Eina_Bool eina_value_list_pset (Eina_Value *value, unsigned int position, const void *ptr)
 Sets the generic value in a list member from pointer. More...
 
static Eina_Bool eina_value_list_pget (const Eina_Value *value, unsigned int position, void *ptr)
 Gets the generic value to pointer from a list member. More...
 
static Eina_Bool eina_value_list_pinsert (Eina_Value *value, unsigned int position, const void *ptr)
 Inserts the generic value in a list member position from pointer. More...
 
static Eina_Bool eina_value_list_pappend (Eina_Value *value, const void *ptr)
 Appends the generic value in a list from pointer. More...
 

Detailed Description

Typedef Documentation

◆ Eina_Value_List

Value type for EINA_VALUE_TYPE_LIST.

See also
_Eina_Value_List explains fields.
Since
1.2

Function Documentation

◆ eina_value_list_new()

EAPI Eina_Value* eina_value_list_new ( const Eina_Value_Type subtype)

Creates generic value storage of type list.

Parameters
[in]subtypeHow to manage this list members.
Returns
The new value, or NULL on failure.

Create a new generic value storage of type list. The members are managed using the description specified by subtype.

On failure, NULL is returned.

Note
this creates from mempool and then uses eina_value_list_setup().
See also
eina_value_free()
eina_value_list_setup()
Since
1.2

References eina_mempool_free(), eina_mempool_malloc(), EINA_SAFETY_ON_FALSE_RETURN_VAL, eina_value_list_setup(), and eina_value_type_check().

◆ eina_value_list_setup()

static Eina_Bool eina_value_list_setup ( Eina_Value value,
const Eina_Value_Type subtype 
)
inlinestatic

Initializes generic value storage of type list.

Parameters
[out]valueValue object
[in]subtypeHow to manage this list members.
Returns
EINA_TRUE on success, EINA_FALSE otherwise.

Initializes new generic value storage of type list with the given subtype.

This is the same as calling eina_value_set() with EINA_VALUE_TYPE_LIST followed by eina_value_pset() with the Eina_Value_List description configured.

Note
Existing contents are ignored! If the value was previously used, then use eina_value_flush() first.

On failure, EINA_FALSE is returned.

See also
eina_value_flush()
Since
1.2

Referenced by eina_value_list_new().

◆ eina_value_list_count()

static unsigned int eina_value_list_count ( const Eina_Value value)
inlinestatic

Queries number of elements in value of list type.

Parameters
[in]valuevalue object.
Returns
number of child elements.
Since
1.2

◆ eina_value_list_remove()

static Eina_Bool eina_value_list_remove ( Eina_Value value,
unsigned int  position 
)
inlinestatic

Removes element at given position in value of list type.

Parameters
[in,out]valuevalue object.
[in]positionindex of the member
Returns
EINA_TRUE on success, EINA_FALSE otherwise.
Since
1.2

◆ eina_value_list_set()

static Eina_Bool eina_value_list_set ( Eina_Value value,
unsigned int  position,
  ... 
)
inlinestatic

Sets the generic value in a list member.

Parameters
[in,out]valueSource value object
[in]positionIndex of the member
Returns
EINA_TRUE on success, EINA_FALSE otherwise.

The variable argument is dependent on chosen subtype. The list for basic types:

  • EINA_VALUE_TYPE_VALUE: Eina_Value
  • EINA_VALUE_TYPE_ERROR: Eina_Error
  • EINA_VALUE_TYPE_UCHAR: unsigned char
  • EINA_VALUE_TYPE_USHORT: unsigned short
  • EINA_VALUE_TYPE_UINT: unsigned int
  • EINA_VALUE_TYPE_ULONG: unsigned long
  • EINA_VALUE_TYPE_UINT64: uint64_t
  • EINA_VALUE_TYPE_CHAR: char
  • EINA_VALUE_TYPE_SHORT: short
  • EINA_VALUE_TYPE_INT: int
  • EINA_VALUE_TYPE_LONG: long
  • EINA_VALUE_TYPE_INT64: int64_t
  • EINA_VALUE_TYPE_FLOAT: float
  • EINA_VALUE_TYPE_DOUBLE: double
  • EINA_VALUE_TYPE_STRINGSHARE: const char *
  • EINA_VALUE_TYPE_STRING: const char *
  • EINA_VALUE_TYPE_LIST: Eina_Value_List
  • EINA_VALUE_TYPE_HASH: Eina_Value_Hash
  • EINA_VALUE_TYPE_TIMEVAL: struct timeval
  • EINA_VALUE_TYPE_BLOB: Eina_Value_Blob
  • EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct
  • EINA_VALUE_TYPE_TM: struct tm*
See also
eina_value_list_get()
eina_value_list_vset()
eina_value_list_pset()
eina_value_list_insert()
eina_value_list_vinsert()
eina_value_list_pinsert()
eina_value_list_append()
eina_value_list_vappend()
eina_value_list_pappend()
Since
1.2

◆ eina_value_list_get()

static Eina_Bool eina_value_list_get ( const Eina_Value value,
unsigned int  position,
  ... 
)
inlinestatic

Gets the generic value from a list member.

Parameters
[in]valueSource value object
[in]positionIndex of the member
Returns
EINA_TRUE on success, EINA_FALSE otherwise.

The value is returned in the variable argument parameter, the actual value is type-dependent, but usually it will be what is stored inside the object. There shouldn't be any memory allocation, thus the contents should not be freed.

The variable argument is dependent on chosen subtype. The list for basic types:

  • EINA_VALUE_TYPE_VALUE: Eina_Value*
  • EINA_VALUE_TYPE_ERROR: Eina_Error*
  • EINA_VALUE_TYPE_UCHAR: unsigned char*
  • EINA_VALUE_TYPE_USHORT: unsigned short*
  • EINA_VALUE_TYPE_UINT: unsigned int*
  • EINA_VALUE_TYPE_ULONG: unsigned long*
  • EINA_VALUE_TYPE_UINT64: uint64_t*
  • EINA_VALUE_TYPE_CHAR: char*
  • EINA_VALUE_TYPE_SHORT: short*
  • EINA_VALUE_TYPE_INT: int*
  • EINA_VALUE_TYPE_LONG: long*
  • EINA_VALUE_TYPE_INT64: int64_t*
  • EINA_VALUE_TYPE_FLOAT: float*
  • EINA_VALUE_TYPE_DOUBLE: double*
  • EINA_VALUE_TYPE_STRINGSHARE: const char **
  • EINA_VALUE_TYPE_STRING: const char **
  • EINA_VALUE_TYPE_LIST: Eina_Value_List*
  • EINA_VALUE_TYPE_HASH: Eina_Value_Hash*
  • EINA_VALUE_TYPE_TIMEVAL: struct timeval*
  • EINA_VALUE_TYPE_BLOB: Eina_Value_Blob*
  • EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct*
  • EINA_VALUE_TYPE_TM: struct tm*
See also
eina_value_list_set()
eina_value_list_vset()
eina_value_list_pset()
Since
1.2

◆ eina_value_list_insert()

static Eina_Bool eina_value_list_insert ( Eina_Value value,
unsigned int  position,
  ... 
)
inlinestatic

Inserts the generic value in a list member position.

Parameters
[in,out]valueSource value object
[in]positionIndex of the member
Returns
EINA_TRUE on success, EINA_FALSE otherwise.

The variable argument is dependent on chosen subtype. The list for basic types:

  • EINA_VALUE_TYPE_VALUE: Eina_Value
  • EINA_VALUE_TYPE_ERROR: Eina_Error
  • EINA_VALUE_TYPE_UCHAR: unsigned char
  • EINA_VALUE_TYPE_USHORT: unsigned short
  • EINA_VALUE_TYPE_UINT: unsigned int
  • EINA_VALUE_TYPE_ULONG: unsigned long
  • EINA_VALUE_TYPE_UINT64: uint64_t
  • EINA_VALUE_TYPE_CHAR: char
  • EINA_VALUE_TYPE_SHORT: short
  • EINA_VALUE_TYPE_INT: int
  • EINA_VALUE_TYPE_LONG: long
  • EINA_VALUE_TYPE_INT64: int64_t
  • EINA_VALUE_TYPE_FLOAT: float
  • EINA_VALUE_TYPE_DOUBLE: double
  • EINA_VALUE_TYPE_STRINGSHARE: const char *
  • EINA_VALUE_TYPE_STRING: const char *
  • EINA_VALUE_TYPE_LIST: Eina_Value_List
  • EINA_VALUE_TYPE_HASH: Eina_Value_Hash
  • EINA_VALUE_TYPE_TIMEVAL: struct timeval
  • EINA_VALUE_TYPE_BLOB: Eina_Value_Blob
  • EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct
  • EINA_VALUE_TYPE_TM: struct tm*
See also
eina_value_list_set()
eina_value_list_get()
eina_value_list_vset()
eina_value_list_pset()
eina_value_list_vinsert()
eina_value_list_pinsert()
eina_value_list_append()
eina_value_list_vappend()
eina_value_list_pappend()
Since
1.2

◆ eina_value_list_append()

static Eina_Bool eina_value_list_append ( Eina_Value value,
  ... 
)
inlinestatic

Appends the generic value in a list.

Parameters
[in,out]valueSource value object
[in]...Variable arguments
Returns
EINA_TRUE on success, EINA_FALSE otherwise.

The variable argument is dependent on chosen subtype. The list for basic types:

  • EINA_VALUE_TYPE_VALUE: Eina_Value
  • EINA_VALUE_TYPE_ERROR: Eina_Error
  • EINA_VALUE_TYPE_UCHAR: unsigned char
  • EINA_VALUE_TYPE_USHORT: unsigned short
  • EINA_VALUE_TYPE_UINT: unsigned int
  • EINA_VALUE_TYPE_ULONG: unsigned long
  • EINA_VALUE_TYPE_UINT64: uint64_t
  • EINA_VALUE_TYPE_CHAR: char
  • EINA_VALUE_TYPE_SHORT: short
  • EINA_VALUE_TYPE_INT: int
  • EINA_VALUE_TYPE_LONG: long
  • EINA_VALUE_TYPE_INT64: int64_t
  • EINA_VALUE_TYPE_FLOAT: float
  • EINA_VALUE_TYPE_DOUBLE: double
  • EINA_VALUE_TYPE_STRINGSHARE: const char *
  • EINA_VALUE_TYPE_STRING: const char *
  • EINA_VALUE_TYPE_LIST: Eina_Value_List
  • EINA_VALUE_TYPE_HASH: Eina_Value_Hash
  • EINA_VALUE_TYPE_TIMEVAL: struct timeval
  • EINA_VALUE_TYPE_BLOB: Eina_Value_Blob
  • EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct
  • EINA_VALUE_TYPE_TM: struct tm*
See also
eina_value_list_set()
eina_value_list_get()
eina_value_list_vset()
eina_value_list_pset()
eina_value_list_vinsert()
eina_value_list_pinsert()
eina_value_list_append()
eina_value_list_vappend()
eina_value_list_pappend()
Since
1.2

◆ eina_value_list_vset()

static Eina_Bool eina_value_list_vset ( Eina_Value value,
unsigned int  position,
va_list  args 
)
inlinestatic

Sets the generic value in a list member.

Parameters
[in,out]valueSource value object
[in]positionIndex of the member
[in]argsVariable argument
Returns
EINA_TRUE on success, EINA_FALSE otherwise.
See also
eina_value_list_set()
eina_value_list_get()
eina_value_list_pset()
eina_value_list_insert()
eina_value_list_vinsert()
eina_value_list_pinsert()
eina_value_list_append()
eina_value_list_vappend()
eina_value_list_pappend()
Since
1.2

◆ eina_value_list_vget()

static Eina_Bool eina_value_list_vget ( const Eina_Value value,
unsigned int  position,
va_list  args 
)
inlinestatic

Gets the generic value from a list member.

Parameters
[in]valueSource value object
[in]positionIndex of the member
[in]argsVariable argument
Returns
EINA_TRUE on success, EINA_FALSE otherwise.

The value is returned in the variable argument parameter, the actual value is type-dependent, but usually it will be what is stored inside the object. There shouldn't be any memory allocation, thus the contents should not be freed.

See also
eina_value_list_vset()
eina_value_list_get()
eina_value_list_pget()
Since
1.2

◆ eina_value_list_vinsert()

static Eina_Bool eina_value_list_vinsert ( Eina_Value value,
unsigned int  position,
va_list  args 
)
inlinestatic

Inserts the generic value in a list member position.

Parameters
[in,out]valueSource value object
[in]positionIndex of the member
[in]argsVariable argument
Returns
EINA_TRUE on success, EINA_FALSE otherwise.
See also
eina_value_list_set()
eina_value_list_get()
eina_value_list_vset()
eina_value_list_pset()
eina_value_list_insert()
eina_value_list_pinsert()
eina_value_list_append()
eina_value_list_vappend()
eina_value_list_pappend()
Since
1.2

◆ eina_value_list_vappend()

static Eina_Bool eina_value_list_vappend ( Eina_Value value,
va_list  args 
)
inlinestatic

Appends the generic value in a list.

Parameters
[in,out]valueSource value object
[in]argsVariable argument
Returns
EINA_TRUE on success, EINA_FALSE otherwise.
See also
eina_value_list_set()
eina_value_list_get()
eina_value_list_vget()
eina_value_list_pset()
eina_value_list_insert()
eina_value_list_vinsert()
eina_value_list_pinsert()
eina_value_list_append()
eina_value_list_pappend()
Since
1.2

◆ eina_value_list_pset()

static Eina_Bool eina_value_list_pset ( Eina_Value value,
unsigned int  position,
const void *  ptr 
)
inlinestatic

Sets the generic value in a list member from pointer.

Parameters
[in,out]valueSource value object
[in]positionIndex of the member
[in]ptrPointer to specify the contents.
Returns
EINA_TRUE on success, EINA_FALSE otherwise.

The pointer type is dependent on chosen value type. The list for basic types:

  • EINA_VALUE_TYPE_VALUE: Eina_Value*
  • EINA_VALUE_TYPE_ERROR: Eina_Error*
  • EINA_VALUE_TYPE_UCHAR: unsigned char*
  • EINA_VALUE_TYPE_USHORT: unsigned short*
  • EINA_VALUE_TYPE_UINT: unsigned int*
  • EINA_VALUE_TYPE_ULONG: unsigned long*
  • EINA_VALUE_TYPE_UINT64: uint64_t*
  • EINA_VALUE_TYPE_CHAR: char*
  • EINA_VALUE_TYPE_SHORT: short*
  • EINA_VALUE_TYPE_INT: int*
  • EINA_VALUE_TYPE_LONG: long*
  • EINA_VALUE_TYPE_INT64: int64_t*
  • EINA_VALUE_TYPE_FLOAT: float*
  • EINA_VALUE_TYPE_DOUBLE: double*
  • EINA_VALUE_TYPE_STRINGSHARE: const char **
  • EINA_VALUE_TYPE_STRING: const char **
  • EINA_VALUE_TYPE_LIST: Eina_Value_List*
  • EINA_VALUE_TYPE_HASH: Eina_Value_Hash*
  • EINA_VALUE_TYPE_TIMEVAL: struct timeval*
  • EINA_VALUE_TYPE_BLOB: Eina_Value_Blob*
  • EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct*
  • EINA_VALUE_TYPE_TM: struct tm*
Note
the pointer contents are written using the size defined by type. It can be larger than void* or uint64_t.
See also
eina_value_list_set()
eina_value_list_get()
eina_value_list_vset()
eina_value_list_insert()
eina_value_list_vinsert()
eina_value_list_pinsert()
eina_value_list_append()
eina_value_list_vappend()
eina_value_list_pappend()
Since
1.2

◆ eina_value_list_pget()

static Eina_Bool eina_value_list_pget ( const Eina_Value value,
unsigned int  position,
void *  ptr 
)
inlinestatic

Gets the generic value to pointer from a list member.

Parameters
[in]valueSource value object
[in]positionIndex of the member
[out]ptrPointer to receive the contents.
Returns
EINA_TRUE on success, EINA_FALSE otherwise.

The value is returned in pointer contents, the actual value is type-dependent, but usually it will be what is stored inside the object. There shouldn't be any memory allocation, thus the contents should not be freed.

The pointer type is dependent on chosen value type. The list for basic types:

  • EINA_VALUE_TYPE_VALUE: Eina_Value*
  • EINA_VALUE_TYPE_ERROR: Eina_Error*
  • EINA_VALUE_TYPE_UCHAR: unsigned char*
  • EINA_VALUE_TYPE_USHORT: unsigned short*
  • EINA_VALUE_TYPE_UINT: unsigned int*
  • EINA_VALUE_TYPE_ULONG: unsigned long*
  • EINA_VALUE_TYPE_UINT64: uint64_t*
  • EINA_VALUE_TYPE_CHAR: char*
  • EINA_VALUE_TYPE_SHORT: short*
  • EINA_VALUE_TYPE_INT: int*
  • EINA_VALUE_TYPE_LONG: long*
  • EINA_VALUE_TYPE_INT64: int64_t*
  • EINA_VALUE_TYPE_FLOAT: float*
  • EINA_VALUE_TYPE_DOUBLE: double*
  • EINA_VALUE_TYPE_STRINGSHARE: const char **
  • EINA_VALUE_TYPE_STRING: const char **
  • EINA_VALUE_TYPE_LIST: Eina_Value_List*
  • EINA_VALUE_TYPE_HASH: Eina_Value_Hash*
  • EINA_VALUE_TYPE_TIMEVAL: struct timeval*
  • EINA_VALUE_TYPE_BLOB: Eina_Value_Blob*
  • EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct*
  • EINA_VALUE_TYPE_TM: struct tm*
See also
eina_value_list_set()
eina_value_list_vset()
eina_value_list_pset()
Since
1.2

◆ eina_value_list_pinsert()

static Eina_Bool eina_value_list_pinsert ( Eina_Value value,
unsigned int  position,
const void *  ptr 
)
inlinestatic

Inserts the generic value in a list member position from pointer.

Parameters
[in,out]valueSource value object
[in]positionIndex of the member
[in]ptrPointer to specify the contents.
Returns
EINA_TRUE on success, EINA_FALSE otherwise.

The pointer type is dependent on chosen value type. The list for basic types:

  • EINA_VALUE_TYPE_VALUE: Eina_Value*
  • EINA_VALUE_TYPE_ERROR: Eina_Error*
  • EINA_VALUE_TYPE_UCHAR: unsigned char*
  • EINA_VALUE_TYPE_USHORT: unsigned short*
  • EINA_VALUE_TYPE_UINT: unsigned int*
  • EINA_VALUE_TYPE_ULONG: unsigned long*
  • EINA_VALUE_TYPE_UINT64: uint64_t*
  • EINA_VALUE_TYPE_CHAR: char*
  • EINA_VALUE_TYPE_SHORT: short*
  • EINA_VALUE_TYPE_INT: int*
  • EINA_VALUE_TYPE_LONG: long*
  • EINA_VALUE_TYPE_INT64: int64_t*
  • EINA_VALUE_TYPE_FLOAT: float*
  • EINA_VALUE_TYPE_DOUBLE: double*
  • EINA_VALUE_TYPE_STRINGSHARE: const char **
  • EINA_VALUE_TYPE_STRING: const char **
  • EINA_VALUE_TYPE_LIST: Eina_Value_List*
  • EINA_VALUE_TYPE_HASH: Eina_Value_Hash*
  • EINA_VALUE_TYPE_TIMEVAL: struct timeval*
  • EINA_VALUE_TYPE_BLOB: Eina_Value_Blob*
  • EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct*
  • EINA_VALUE_TYPE_TM: struct tm*
Note
the pointer contents are written using the size defined by type. It can be larger than void* or uint64_t.
See also
eina_value_list_set()
eina_value_list_get()
eina_value_list_vset()
eina_value_list_insert()
eina_value_list_vinsert()
eina_value_list_pinsert()
eina_value_list_append()
eina_value_list_vappend()
eina_value_list_pappend()
Since
1.2

◆ eina_value_list_pappend()

static Eina_Bool eina_value_list_pappend ( Eina_Value value,
const void *  ptr 
)
inlinestatic

Appends the generic value in a list from pointer.

Parameters
[in,out]valueSource value object
[in]ptrPointer to specify the contents.
Returns
EINA_TRUE on success, EINA_FALSE otherwise.

The pointer type is dependent on chosen value type. The list for basic types:

  • EINA_VALUE_TYPE_VALUE: Eina_Value*
  • EINA_VALUE_TYPE_ERROR: Eina_Error*
  • EINA_VALUE_TYPE_UCHAR: unsigned char*
  • EINA_VALUE_TYPE_USHORT: unsigned short*
  • EINA_VALUE_TYPE_UINT: unsigned int*
  • EINA_VALUE_TYPE_ULONG: unsigned long*
  • EINA_VALUE_TYPE_UINT64: uint64_t*
  • EINA_VALUE_TYPE_CHAR: char*
  • EINA_VALUE_TYPE_SHORT: short*
  • EINA_VALUE_TYPE_INT: int*
  • EINA_VALUE_TYPE_LONG: long*
  • EINA_VALUE_TYPE_INT64: int64_t*
  • EINA_VALUE_TYPE_FLOAT: float*
  • EINA_VALUE_TYPE_DOUBLE: double*
  • EINA_VALUE_TYPE_STRINGSHARE: const char **
  • EINA_VALUE_TYPE_STRING: const char **
  • EINA_VALUE_TYPE_LIST: Eina_Value_List*
  • EINA_VALUE_TYPE_HASH: Eina_Value_Hash*
  • EINA_VALUE_TYPE_TIMEVAL: struct timeval*
  • EINA_VALUE_TYPE_BLOB: Eina_Value_Blob*
  • EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct*
  • EINA_VALUE_TYPE_TM: struct tm*
Note
the pointer contents are written using the size defined by type. It can be larger than void* or uint64_t.
See also
eina_value_list_set()
eina_value_list_get()
eina_value_list_vset()
eina_value_list_insert()
eina_value_list_vinsert()
eina_value_list_pinsert()
eina_value_list_append()
eina_value_list_vappend()
eina_value_list_pappend()
Since
1.2