Generic Value Array management
[Generic Value Storage]
Data Structures | |
struct | _Eina_Value_Array |
Used to store the array and its subtype. More... | |
Typedefs | |
typedef struct _Eina_Value_Array | Eina_Value_Array |
Value type for EINA_VALUE_TYPE_ARRAY. | |
Functions | |
Eina_Value * | eina_value_array_new (const Eina_Value_Type *subtype, unsigned int step) |
Create generic value storage of type array. | |
static Eina_Bool | eina_value_array_setup (Eina_Value *value, const Eina_Value_Type *subtype, unsigned int step) |
Initialize generic value storage of type array. | |
static unsigned int | eina_value_array_count (const Eina_Value *value) |
Query number of elements in value of array type. | |
static Eina_Bool | eina_value_array_remove (Eina_Value *value, unsigned int position) |
Remove element at given position in value of array type. | |
static Eina_Bool | eina_value_array_set (Eina_Value *value, unsigned int position,...) |
Set the generic value in an array member. | |
static Eina_Bool | eina_value_array_get (const Eina_Value *value, unsigned int position,...) |
Get the generic value from an array member. | |
static Eina_Bool | eina_value_array_insert (Eina_Value *value, unsigned int position,...) |
Insert a generic value in an array member position. | |
static Eina_Bool | eina_value_array_append (Eina_Value *value,...) |
Append a generic value in an array. | |
static Eina_Bool | eina_value_array_vset (Eina_Value *value, unsigned int position, va_list args) |
Set a generic value to an array member. | |
static Eina_Bool | eina_value_array_vget (const Eina_Value *value, unsigned int position, va_list args) |
Get the generic value from an array member. | |
static Eina_Bool | eina_value_array_vinsert (Eina_Value *value, unsigned int position, va_list args) |
Insert a generic value to an array member position. | |
static Eina_Bool | eina_value_array_vappend (Eina_Value *value, va_list args) |
Append a generic value to an array. | |
static Eina_Bool | eina_value_array_pset (Eina_Value *value, unsigned int position, const void *ptr) |
Set a generic value to an array member from a pointer. | |
static Eina_Bool | eina_value_array_pget (const Eina_Value *value, unsigned int position, void *ptr) |
Retrieve a generic value into a pointer from an array member. | |
static Eina_Bool | eina_value_array_pinsert (Eina_Value *value, unsigned int position, const void *ptr) |
Insert a generic value to an array member position from a pointer. | |
static Eina_Bool | eina_value_array_pappend (Eina_Value *value, const void *ptr) |
Append a generic value to an array from a pointer. | |
static Eina_Bool | eina_value_array_value_get (const Eina_Value *src, unsigned int position, Eina_Value *dst) |
Retrieves a value from the array as an Eina_Value copy. |
Typedef Documentation
Function Documentation
Eina_Value* eina_value_array_new | ( | const Eina_Value_Type * | subtype, | |
unsigned int | step | |||
) |
Create generic value storage of type array.
- Parameters:
-
subtype how to manage this array members. step how to grow the members array.
- Returns:
- The new value or
NULL
on failure.
On failure, NULL
is returned and EINA_ERROR_OUT_OF_MEMORY or EINA_ERROR_VALUE_FAILED is set.
- Note:
- this creates from mempool and then uses eina_value_array_setup().
- Since:
- 1.2
References EINA_FALSE, eina_mempool_free(), eina_mempool_malloc(), EINA_SAFETY_ON_FALSE_RETURN_VAL, eina_value_array_setup(), and eina_value_type_check().
static Eina_Bool eina_value_array_setup | ( | Eina_Value * | value, | |
const Eina_Value_Type * | subtype, | |||
unsigned int | step | |||
) | [inline, static] |
Initialize generic value storage of type array.
- Parameters:
-
value value object subtype how to manage array members. step how to grow the members array.
- Returns:
- EINA_TRUE on success, EINA_FALSE otherwise.
This is the same as calling eina_value_set() with EINA_VALUE_TYPE_ARRAY followed by eina_value_pset() with the Eina_Value_Array description configured.
- Note:
- Existing contents are ignored! If the value was previously used, then use eina_value_flush() first.
- See also:
- eina_value_flush()
- Since:
- 1.2
Referenced by eina_value_array_new().
static unsigned int eina_value_array_count | ( | const Eina_Value * | value | ) | [inline, static] |
Query number of elements in value of array type.
- Parameters:
-
value value object.
- Returns:
- number of child elements.
- Since:
- 1.2
static Eina_Bool eina_value_array_remove | ( | Eina_Value * | value, | |
unsigned int | position | |||
) | [inline, static] |
Remove element at given position in value of array type.
- Parameters:
-
value value object. position index of the member
- Returns:
- EINA_TRUE on success, EINA_FALSE otherwise.
- Since:
- 1.2
static Eina_Bool eina_value_array_set | ( | Eina_Value * | value, | |
unsigned int | position, | |||
... | ||||
) | [inline, static] |
Set the generic value in an array member.
- Parameters:
-
value source value object position index of the member
- Returns:
- EINA_TRUE on success, EINA_FALSE otherwise.
- 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_ARRAY: Eina_Value_Array
- 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 *value = eina_value_array_new(EINA_VALUE_TYPE_INT, 0); int x; eina_value_array_append(value, 1234); eina_value_array_set(value, 0, 5678); eina_value_array_get(value, 0, &x); eina_value_free(value);
- See also:
- eina_value_array_get()
- Since:
- 1.2
static Eina_Bool eina_value_array_get | ( | const Eina_Value * | value, | |
unsigned int | position, | |||
... | ||||
) | [inline, static] |
Get the generic value from an array member.
- Parameters:
-
value source value object position index 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_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_ARRAY: Eina_Value_Array*
- 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 *value = eina_value_array_new(EINA_VALUE_TYPE_INT, 0); int x; eina_value_array_append(value, 1234); eina_value_array_get(value, 0, &x); eina_value_free(value);
- Since:
- 1.2
static Eina_Bool eina_value_array_insert | ( | Eina_Value * | value, | |
unsigned int | position, | |||
... | ||||
) | [inline, static] |
Insert a generic value in an array member position.
- Parameters:
-
value source value object position index of the member
- Returns:
- EINA_TRUE on success, EINA_FALSE otherwise.
- 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_ARRAY: Eina_Value_Array
- 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 *value = eina_value_array_new(EINA_VALUE_TYPE_INT, 0); int x; eina_value_array_insert(value, 0, 1234); eina_value_array_get(value, 0, &x); eina_value_free(value);
- See also:
- eina_value_array_set()
- Since:
- 1.2
static Eina_Bool eina_value_array_append | ( | Eina_Value * | value, | |
... | ||||
) | [inline, static] |
Append a generic value in an array.
- Parameters:
-
value source value object
- Returns:
- EINA_TRUE on success, EINA_FALSE otherwise.
- 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_ARRAY: Eina_Value_Array
- 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 *value = eina_value_array_new(EINA_VALUE_TYPE_INT, 0); int x; eina_value_array_append(value, 1234); eina_value_array_get(value, 0, &x); eina_value_free(value);
- See also:
- eina_value_array_set()
- Since:
- 1.2
static Eina_Bool eina_value_array_vset | ( | Eina_Value * | value, | |
unsigned int | position, | |||
va_list | args | |||
) | [inline, static] |
Set a generic value to an array member.
- Parameters:
-
value source value object position index of the member args variable argument
- Returns:
- EINA_TRUE on success, EINA_FALSE otherwise.
- See also:
- eina_value_array_set()
- Since:
- 1.2
static Eina_Bool eina_value_array_vget | ( | const Eina_Value * | value, | |
unsigned int | position, | |||
va_list | args | |||
) | [inline, static] |
Get the generic value from an array member.
- Parameters:
-
value source value object position index of the member args variable argument
- Returns:
- EINA_TRUE on success, EINA_FALSE otherwise.
- Since:
- 1.2
static Eina_Bool eina_value_array_vinsert | ( | Eina_Value * | value, | |
unsigned int | position, | |||
va_list | args | |||
) | [inline, static] |
Insert a generic value to an array member position.
- Parameters:
-
value source value object position index of the member args variable argument
- Returns:
- EINA_TRUE on success, EINA_FALSE otherwise.
- See also:
- eina_value_array_set()
- Since:
- 1.2
static Eina_Bool eina_value_array_vappend | ( | Eina_Value * | value, | |
va_list | args | |||
) | [inline, static] |
Append a generic value to an array.
- Parameters:
-
value source value object args variable argument
- Returns:
- EINA_TRUE on success, EINA_FALSE otherwise.
- See also:
- eina_value_array_set()
- Since:
- 1.2
static Eina_Bool eina_value_array_pset | ( | Eina_Value * | value, | |
unsigned int | position, | |||
const void * | ptr | |||
) | [inline, static] |
Set a generic value to an array member from a pointer.
- Parameters:
-
value source value object position index of the member ptr pointer to specify the contents.
- Returns:
- EINA_TRUE on success, EINA_FALSE otherwise.
- 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_ARRAY: Eina_Value_Array*
- 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*
- Note:
- the pointer contents are written using the size defined by type. It can be larger than void* or uint64_t.
Eina_Value *value = eina_value_array_new(EINA_VALUE_TYPE_INT, 0); int x = 1234; eina_value_array_append(value, 1234); eina_value_array_pset(value, 0, &x); eina_value_array_pget(value, 0, &x); eina_value_free(value);
- See also:
- eina_value_array_set()
- Since:
- 1.2
static Eina_Bool eina_value_array_pget | ( | const Eina_Value * | value, | |
unsigned int | position, | |||
void * | ptr | |||
) | [inline, static] |
Retrieve a generic value into a pointer from an array member.
- Parameters:
-
value source value object position index of the member ptr pointer to receive 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_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_ARRAY: Eina_Value_Array*
- 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 *value = eina_value_array_new(EINA_VALUE_TYPE_INT, 0); int x; eina_value_array_append(value, 1234); eina_value_array_pget(value, 0, &x); eina_value_free(value);
- Since:
- 1.2
static Eina_Bool eina_value_array_pinsert | ( | Eina_Value * | value, | |
unsigned int | position, | |||
const void * | ptr | |||
) | [inline, static] |
Insert a generic value to an array member position from a pointer.
- Parameters:
-
value source value object position index of the member ptr pointer to specify the contents.
- Returns:
- EINA_TRUE on success, EINA_FALSE otherwise.
- 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_ARRAY: Eina_Value_Array*
- 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*
- Note:
- the pointer contents are written using the size defined by type. It can be larger than void* or uint64_t.
Eina_Value *value = eina_value_array_new(EINA_VALUE_TYPE_INT, 0); int x = 1234; eina_value_array_pinsert(value, 0, &x); eina_value_array_pget(value, 0, &x); eina_value_free(value);
- See also:
- eina_value_array_set()
- Since:
- 1.2
static Eina_Bool eina_value_array_pappend | ( | Eina_Value * | value, | |
const void * | ptr | |||
) | [inline, static] |
Append a generic value to an array from a pointer.
- Parameters:
-
value source value object ptr pointer to specify the contents.
- Returns:
- EINA_TRUE on success, EINA_FALSE otherwise.
- 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_ARRAY: Eina_Value_Array*
- 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*
- Note:
- the pointer contents are written using the size defined by type. It can be larger than void* or uint64_t.
Eina_Value *value = eina_value_array_new(EINA_VALUE_TYPE_INT, 0); int x = 1234; eina_value_array_pappend(value, &x); eina_value_array_pget(value, 0, &x); eina_value_free(value);
- See also:
- eina_value_array_set()
- Since:
- 1.2
static Eina_Bool eina_value_array_value_get | ( | const Eina_Value * | src, | |
unsigned int | position, | |||
Eina_Value * | dst | |||
) | [inline, static] |
Retrieves a value from the array as an Eina_Value copy.
- Parameters:
-
src source value object position index of the member dst where to return the array member
- Returns:
- EINA_TRUE on success, EINA_FALSE otherwise.
- Since:
- 1.2