Generic Value Array management
Eina » Data Types » Containers » Generic Value Storage

## Data Structures

struct | _Eina_Value_Array
| Used to store the array and its subtype. More...

## Macros

#define | EINA_VALUE_ARRAY_FOREACH(Array, Length, It, Value)
| Definition for the macro to iterate over an array contained in an Eina_Value.

## Typedefs

typedef struct _Eina_Value_Array | Eina_Value_Array
| Value type for EINA_VALUE_TYPE_ARRAY.

## Functions

EINA_API Eina_Value * | eina_value_array_new (const Eina_Value_Type *subtype, unsigned int step)
| Creates generic value storage of type array.
static Eina_Bool | eina_value_array_setup (Eina_Value *value, const Eina_Value_Type *subtype, unsigned int step)
| Initializes generic value storage of type array.
static unsigned int | eina_value_array_count (const Eina_Value *value)
| Queries number of elements in value of array type.
static Eina_Bool | eina_value_array_remove (Eina_Value *value, unsigned int position)
| Removes element at given position in value of array type.
static Eina_Bool | eina_value_array_set (Eina_Value *value, unsigned int position,...)
| Sets the generic value in an array member.
static Eina_Bool | eina_value_array_get (const Eina_Value *value, unsigned int position,...)
| Gets the generic value from an array member.
static Eina_Bool | eina_value_array_insert (Eina_Value *value, unsigned int position,...)
| Inserts a generic value in an array member position.
static Eina_Bool | eina_value_array_append (Eina_Value *value,...)
| Appends a generic value in an array.
static Eina_Bool | eina_value_array_vset (Eina_Value *value, unsigned int position, va_list args)
| Sets a generic value to an array member.
static Eina_Bool | eina_value_array_vget (const Eina_Value *value, unsigned int position, va_list args)
| Gets the generic value from an array member.
static Eina_Bool | eina_value_array_vinsert (Eina_Value *value, unsigned int position, va_list args)
| Inserts a generic value to an array member position.
static Eina_Bool | eina_value_array_vappend (Eina_Value *value, va_list args)
| Appends a generic value to an array.
static Eina_Bool | eina_value_array_pset (Eina_Value *value, unsigned int position, const void *ptr)
| Sets 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)
| Retrieves 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)
| Inserts a generic value to an array member position from a pointer.
static Eina_Bool | eina_value_array_pappend (Eina_Value *value, const void *ptr)
| Appends 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.

## Detailed Description

## Macro Definition Documentation

## EINA_VALUE_ARRAY_FOREACH

#define EINA_VALUE_ARRAY_FOREACH | ( |  | Array,
|  |  | Length,
|  |  | It,
|  |  | Value )

Value:
for (Length = eina_value_array_count(Array), \
It = 0, \
eina_value_array_get(Array, It, &Value); \
It < Length; \
It++, \
eina_value_array_get(Array, It, &Value))

Definition for the macro to iterate over an array contained in an Eina_Value.

Since
  1.21

Parameters

  [in] | Array | The list to iterate over.
  [in] | Length | Contain the length of the array
  [out] | It | Contain the current position walked over
  [out] | Value | Contain the value at the current position.

This macro iterates over `array` from the first element to the last. `value` is the data related to the current element.

It can be used like in the following example:

Eina_Value array;
Eina_Error err;
unsigned int i, len;
// array is already filled with EINA_VALUE_TYPE_ERROR,
// its elements are unknown,
// EINA_VALUE_ARRAY_FOREACH will be used to check if there is no error
EINA_VALUE_ARRAY_FOREACH(&array, len, i, err)
{
eina_value_get(&v, &err);
fprintf(stderr, "Something has gone wrong: %s at index: %i\n", eina_error_msg_get(err), i);
}
Eina_Error
int Eina_Error
The integer type containing the error type.
Definition eina_error.h:90
eina_error_msg_get
EINA_API const char * eina_error_msg_get(Eina_Error error)
Returns the description of the given error number.
Definition eina_error.c:295
EINA_VALUE_ARRAY_FOREACH
#define EINA_VALUE_ARRAY_FOREACH(Array, Length, It, Value)
Definition for the macro to iterate over an array contained in an Eina_Value.
Definition eina_value.h:1879
Eina_Value
struct _Eina_Value Eina_Value
Store generic values.
Definition eina_value.h:307
eina_value_get
static Eina_Bool eina_value_get(const Eina_Value *value,...)
Gets the generic value.

Warning
  `array` and v must be a pointer to an Eina_Value

## Typedef Documentation

## Eina_Value_Array

typedef struct _Eina_Value_Array Eina_Value_Array

Value type for EINA_VALUE_TYPE_ARRAY.

See also
  _Eina_Value_Array explains fields.

Since
  1.2

Examples
  complex-types-client-eina-value.c.

## Function Documentation

## eina_value_array_new()

EINA_API Eina_Value * eina_value_array_new | ( | const Eina_Value_Type * | subtype,
|  | unsigned int | step )

Creates generic value storage of type array.

Parameters

  [in] | subtype | How to manage this array members.
  [in] | step | How to grow the members array.

Returns
  The new value or `NULL` on failure.

Create a new generic value storage of type array. 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_array_setup().

See also
  eina_value_free()
  eina_value_array_setup()

Since
  1.2

References EINA_SAFETY_ON_FALSE_RETURN_VAL, and eina_value_type_check().

## eina_value_array_setup()

Eina_Bool eina_value_array_setup | ( | Eina_Value * | value,
|  | const Eina_Value_Type * | subtype,
|  | unsigned int | step )

inline static

Initializes generic value storage of type array.

Parameters

  [out] | value | Value object
  [in] | subtype | How to manage array members.
  [in] | step | How to grow the members array.

Returns
  EINA_TRUE on success, EINA_FALSE otherwise.

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

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.

On failure, EINA_FALSE is returned.

See also
  eina_value_flush()

Since
  1.2

## eina_value_array_count()

unsigned int eina_value_array_count | ( | const Eina_Value * | value | ) |

inline static

Queries number of elements in value of array type.

Parameters

  [in] | value | value object.

Returns
  number of child elements.

Since
  1.2

## eina_value_array_remove()

Eina_Bool eina_value_array_remove | ( | Eina_Value * | value,
|  | unsigned int | position )

inline static

Removes element at given position in value of array type.

Parameters

  [in,out] | value | value object.
  [in] | position | index of the member

Returns
  EINA_TRUE on success, EINA_FALSE otherwise.

Since
  1.2

## eina_value_array_set()

Eina_Bool eina_value_array_set | ( | Eina_Value * | value,
|  | unsigned int | position,
|  |  | ... )

inline static

Sets the generic value in an array member.

Parameters

  [in,out] | value | Source value object
  [in] | 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_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_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_TYPE_TM: struct tm*

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);
eina_value_array_append
static Eina_Bool eina_value_array_append(Eina_Value *value,...)
Appends a generic value in an array.
eina_value_array_get
static Eina_Bool eina_value_array_get(const Eina_Value *value, unsigned int position,...)
Gets the generic value from an array member.
eina_value_array_set
static Eina_Bool eina_value_array_set(Eina_Value *value, unsigned int position,...)
Sets the generic value in an array member.
eina_value_array_new
EINA_API Eina_Value * eina_value_array_new(const Eina_Value_Type *subtype, unsigned int step)
Creates generic value storage of type array.
Definition eina_value.c:5763
EINA_VALUE_TYPE_INT
EINA_API const Eina_Value_Type * EINA_VALUE_TYPE_INT
manages int type.
Definition eina_value.c:5602
eina_value_free
EINA_API void eina_value_free(Eina_Value *value)
Frees value and its data.
Definition eina_value.c:5645

See also
  eina_value_array_get()
  eina_value_array_vset()
  eina_value_array_pset()
  eina_value_array_insert()
  eina_value_array_vinsert()
  eina_value_array_pinsert()
  eina_value_array_append()
  eina_value_array_vappend()
  eina_value_array_pappend()

Since
  1.2

References EINA_ARG_NONNULL.

## eina_value_array_get()

Eina_Bool eina_value_array_get | ( | const Eina_Value * | value,
|  | unsigned int | position,
|  |  | ... )

inline static

Gets the generic value from an array member.

Parameters

  [in] | value | Source value object
  [in] | position | Index of the member

Returns
  EINA_TRUE on success, EINA_FALSE otherwise.

The value is returned in the variable argument parameter, and 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_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_TYPE_TM: struct tm*

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()
  eina_value_array_vset()
  eina_value_array_pset()

Since
  1.2

References EINA_ARG_NONNULL.

## eina_value_array_insert()

Eina_Bool eina_value_array_insert | ( | Eina_Value * | value,
|  | unsigned int | position,
|  |  | ... )

inline static

Inserts a generic value in an array member position.

Parameters

  [in] | value | Source value object
  [in] | position | Index of the member
  [in] | ... | Variable arguments of data to insert

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_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_TYPE_TM: struct tm*

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);
eina_value_array_insert
static Eina_Bool eina_value_array_insert(Eina_Value *value, unsigned int position,...)
Inserts a generic value in an array member position.

See also
  eina_value_array_set()
  eina_value_array_get()
  eina_value_array_vset()
  eina_value_array_pset()
  eina_value_array_vinsert()
  eina_value_array_pinsert()
  eina_value_array_append()
  eina_value_array_vappend()
  eina_value_array_pappend()

Since
  1.2

References EINA_ARG_NONNULL.

## eina_value_array_append()

Eina_Bool eina_value_array_append | ( | Eina_Value * | value,
|  |  | ... )

inline static

Appends a generic value in an array.

Parameters

  [in,out] | value | Source 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_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_TYPE_TM: struct tm*

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()
  eina_value_array_get()
  eina_value_array_vset()
  eina_value_array_pset()
  eina_value_array_vinsert()
  eina_value_array_pinsert()
  eina_value_array_append()
  eina_value_array_vappend()
  eina_value_array_pappend()

Since
  1.2

References EINA_ARG_NONNULL.

## eina_value_array_vset()

Eina_Bool eina_value_array_vset | ( | Eina_Value * | value,
|  | unsigned int | position,
|  | va_list | args )

inline static

Sets a generic value to an array member.

Parameters

  [in,out] | value | Source value object
  [in] | position | Index of the member
  [in] | args | Variable argument

Returns
  EINA_TRUE on success, EINA_FALSE otherwise.

See also
  eina_value_array_set()
  eina_value_array_get()
  eina_value_array_pset()
  eina_value_array_insert()
  eina_value_array_vinsert()
  eina_value_array_pinsert()
  eina_value_array_append()
  eina_value_array_vappend()
  eina_value_array_pappend()

Since
  1.2

References EINA_ARG_NONNULL.

## eina_value_array_vget()

Eina_Bool eina_value_array_vget | ( | const Eina_Value * | value,
|  | unsigned int | position,
|  | va_list | args )

inline static

Gets the generic value from an array member.

Parameters

  [in] | value | Source value object
  [in] | position | Index of the member
  [out] | args | Variable 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_array_vset()
  eina_value_array_get()
  eina_value_array_pget()

Since
  1.2

References EINA_ARG_NONNULL.

## eina_value_array_vinsert()

Eina_Bool eina_value_array_vinsert | ( | Eina_Value * | value,
|  | unsigned int | position,
|  | va_list | args )

inline static

Inserts a generic value to an array member position.

Parameters

  [in,out] | value | Source value object
  [in] | position | Index of the member
  [in] | args | Variable argument

Returns
  EINA_TRUE on success, EINA_FALSE otherwise.

See also
  eina_value_array_set()
  eina_value_array_get()
  eina_value_array_vset()
  eina_value_array_pset()
  eina_value_array_insert()
  eina_value_array_pinsert()
  eina_value_array_append()
  eina_value_array_vappend()
  eina_value_array_pappend()

Since
  1.2

References EINA_ARG_NONNULL.

## eina_value_array_vappend()

Eina_Bool eina_value_array_vappend | ( | Eina_Value * | value,
|  | va_list | args )

inline static

Appends a generic value to an array.

Parameters

  [in,out] | value | Source value object
  [in] | args | Variable argument

Returns
  EINA_TRUE on success, EINA_FALSE otherwise.

See also
  eina_value_array_set()
  eina_value_array_get()
  eina_value_array_vget()
  eina_value_array_pset()
  eina_value_array_insert()
  eina_value_array_vinsert()
  eina_value_array_pinsert()
  eina_value_array_append()
  eina_value_array_pappend()

Since
  1.2

References EINA_ARG_NONNULL.

## eina_value_array_pset()

Eina_Bool eina_value_array_pset | ( | Eina_Value * | value,
|  | unsigned int | position,
|  | const void * | ptr )

inline static

Sets a generic value to an array member from a pointer.

Parameters

  [in,out] | value | Source value object
  [in] | position | Index of the member
  [in] | ptr | Pointer 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_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_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.

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);
eina_value_array_pset
static Eina_Bool eina_value_array_pset(Eina_Value *value, unsigned int position, const void *ptr)
Sets a generic value to an array member from a pointer.
eina_value_array_pget
static Eina_Bool eina_value_array_pget(const Eina_Value *value, unsigned int position, void *ptr)
Retrieves a generic value into a pointer from an array member.

See also
  eina_value_array_set()
  eina_value_array_get()
  eina_value_array_vset()
  eina_value_array_insert()
  eina_value_array_vinsert()
  eina_value_array_pinsert()
  eina_value_array_append()
  eina_value_array_vappend()
  eina_value_array_pappend()

Since
  1.2

References EINA_ARG_NONNULL.

## eina_value_array_pget()

Eina_Bool eina_value_array_pget | ( | const Eina_Value * | value,
|  | unsigned int | position,
|  | void * | ptr )

inline static

Retrieves a generic value into a pointer from an array member.

Parameters

  [in] | value | Source value object
  [in] | position | Index of the member
  [out] | ptr | Pointer 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_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_TYPE_TM: struct tm*

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);

See also
  eina_value_array_set()
  eina_value_array_vset()
  eina_value_array_pset()

Since
  1.2

References EINA_ARG_NONNULL.

## eina_value_array_pinsert()

Eina_Bool eina_value_array_pinsert | ( | Eina_Value * | value,
|  | unsigned int | position,
|  | const void * | ptr )

inline static

Inserts a generic value to an array member position from a pointer.

Parameters

  [in,out] | value | Source value object
  [in] | position | Index of the member
  [in] | ptr | Pointer 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_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_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.

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);
eina_value_array_pinsert
static Eina_Bool eina_value_array_pinsert(Eina_Value *value, unsigned int position, const void *ptr)
Inserts a generic value to an array member position from a pointer.

See also
  eina_value_array_set()
  eina_value_array_get()
  eina_value_array_vset()
  eina_value_array_insert()
  eina_value_array_vinsert()
  eina_value_array_pinsert()
  eina_value_array_append()
  eina_value_array_vappend()
  eina_value_array_pappend()

Since
  1.2

References EINA_ARG_NONNULL.

## eina_value_array_pappend()

Eina_Bool eina_value_array_pappend | ( | Eina_Value * | value,
|  | const void * | ptr )

inline static

Appends a generic value to an array from a pointer.

Parameters

  [in,out] | value | Source value object
  [in] | ptr | Pointer 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_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_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.

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);
eina_value_array_pappend
static Eina_Bool eina_value_array_pappend(Eina_Value *value, const void *ptr)
Appends a generic value to an array from a pointer.

See also
  eina_value_array_set()
  eina_value_array_get()
  eina_value_array_vset()
  eina_value_array_insert()
  eina_value_array_vinsert()
  eina_value_array_pinsert()
  eina_value_array_append()
  eina_value_array_vappend()
  eina_value_array_pappend()

Since
  1.2

References EINA_ARG_NONNULL.

## eina_value_array_value_get()

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

  [in] | src | Source value object
  [in] | position | Index of the member
  [out] | dst | Where to return the array member

Returns
  EINA_TRUE on success, EINA_FALSE otherwise.

The argument dst is considered uninitialized and it's set to the type of the member.

Since
  1.2

References EINA_ARG_NONNULL.