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

## Data Structures

struct | _Eina_Value_Type
| API to access values. More...

## Macros

#define | EINA_VALUE_TYPE_VERSION (1)
| Current API version, used to validate type.

## Functions

EINA_API const char * | eina_value_type_name_get (const Eina_Value_Type *type)
| Queries type name.
EINA_API Eina_Bool | eina_value_type_check (const Eina_Value_Type *type)
| Checks if type is valid.
static Eina_Bool | eina_value_type_setup (const Eina_Value_Type *type, void *mem)
| Initializes memory using type descriptor.
static Eina_Bool | eina_value_type_flush (const Eina_Value_Type *type, void *mem)
| Flushes (clears) memory using type descriptor.
static Eina_Bool | eina_value_type_copy (const Eina_Value_Type *type, const void *src, void *dst)
| Copies memory using type descriptor.
static int | eina_value_type_compare (const Eina_Value_Type *type, const void *a, const void *b)
| Compares memory using type descriptor.
static Eina_Bool | eina_value_type_convert_to (const Eina_Value_Type *type, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem)
| Converts memory using type descriptor.
static Eina_Bool | eina_value_type_convert_from (const Eina_Value_Type *type, const Eina_Value_Type *convert, void *type_mem, const void *convert_mem)
| Converts memory using type descriptor.
static Eina_Bool | eina_value_type_vset (const Eina_Value_Type *type, void *mem, va_list args)
| Sets memory using type descriptor and variable argument.
static Eina_Bool | eina_value_type_pset (const Eina_Value_Type *type, void *mem, const void *ptr)
| Sets memory using type descriptor and pointer.
static Eina_Bool | eina_value_type_pget (const Eina_Value_Type *type, const void *mem, void *ptr)
| Gets memory using type descriptor.

## Detailed Description

## Function Documentation

## eina_value_type_name_get()

EINA_API const char * eina_value_type_name_get | ( | const Eina_Value_Type * | type | ) |

Queries type name.

Parameters

  [in] | type | type reference.

Returns
  string or `NULL` if type is invalid.

Since
  1.2

References EINA_SAFETY_ON_FALSE_RETURN_VAL, and eina_value_type_check().

## eina_value_type_check()

EINA_API Eina_Bool eina_value_type_check | ( | const Eina_Value_Type * | type | ) |

Checks if type is valid.

Parameters

  [in] | type | Type reference.

Returns
  EINA_TRUE if valid, EINA_FALSE otherwise.

A type is invalid if it's `NULL` or if version field is not the same as runtime EINA_VALUE_TYPE_VERSION.

Since
  1.2

References EINA_FALSE, EINA_SAFETY_ON_NULL_RETURN_VAL, and EINA_VALUE_TYPE_VERSION.

Referenced by eina_value_array_new(), eina_value_convert(), eina_value_copy(), eina_value_hash_new(), eina_value_list_new(), eina_value_to_string(), and eina_value_type_name_get().

## eina_value_type_setup()

Eina_Bool eina_value_type_setup | ( | const Eina_Value_Type * | type,
|  | void * | mem )

inline static

Initializes memory using type descriptor.

Parameters

  [in] | type | type reference.
  [out] | mem | memory to operate, must be of size `type->value_size`.

Returns
  EINA_TRUE on success, EINA_FALSE otherwise.

Since
  1.2

## eina_value_type_flush()

Eina_Bool eina_value_type_flush | ( | const Eina_Value_Type * | type,
|  | void * | mem )

inline static

Flushes (clears) memory using type descriptor.

Parameters

  [in] | type | type reference.
  [out] | mem | memory to operate, must be of size `type->value_size`.

Returns
  EINA_TRUE on success, EINA_FALSE otherwise.

Since
  1.2

## eina_value_type_copy()

Eina_Bool eina_value_type_copy | ( | const Eina_Value_Type * | type,
|  | const void * | src,
|  | void * | dst )

inline static

Copies memory using type descriptor.

Parameters

  [in] | type | type reference.
  [in] | src | memory to operate, must be of size `type->value_size`.
  [out] | dst | memory to operate, must be of size `type->value_size`.

Returns
  EINA_TRUE on success, EINA_FALSE otherwise.

Since
  1.2

## eina_value_type_compare()

int eina_value_type_compare | ( | const Eina_Value_Type * | type,
|  | const void * | a,
|  | const void * | b )

inline static

Compares memory using type descriptor.

Parameters

  [in] | type | type reference.
  [in] | a | memory to operate, must be of size `type->value_size`.
  [in] | b | memory to operate, must be of size `type->value_size`.

Returns
  less than zero if a < b, greater than zero if a > b, zero if equal.

Since
  1.2

## eina_value_type_convert_to()

Eina_Bool eina_value_type_convert_to | ( | const Eina_Value_Type * | type,
|  | const Eina_Value_Type * | convert,
|  | const void * | type_mem,
|  | void * | convert_mem )

inline static

Converts memory using type descriptor.

Parameters

  [in] | type | type reference of the source.
  [in] | convert | type reference of the destination.
  [in] | type_mem | memory to operate, must be of size `type->value_size`.
  [out] | convert_mem | memory to operate, must be of size `convert->value_size`.

Returns
  EINA_TRUE on success, EINA_FALSE otherwise.

Since
  1.2

## eina_value_type_convert_from()

Eina_Bool eina_value_type_convert_from | ( | const Eina_Value_Type * | type,
|  | const Eina_Value_Type * | convert,
|  | void * | type_mem,
|  | const void * | convert_mem )

inline static

Converts memory using type descriptor.

Parameters

  [in] | type | type reference of the destination.
  [in] | convert | type reference of the source.
  [out] | type_mem | memory to operate, must be of size `type->value_size`.
  [in] | convert_mem | memory to operate, must be of size `convert->value_size`.

Returns
  EINA_TRUE on success, EINA_FALSE otherwise.

Since
  1.2

## eina_value_type_vset()

Eina_Bool eina_value_type_vset | ( | const Eina_Value_Type * | type,
|  | void * | mem,
|  | va_list | args )

inline static

Sets memory using type descriptor and variable argument.

Parameters

  [in] | type | type reference of the source.
  [out] | mem | memory to operate, must be of size `type->value_size`.
  [in] | args | input value.

Returns
  EINA_TRUE on success, EINA_FALSE otherwise.

Since
  1.2

## eina_value_type_pset()

Eina_Bool eina_value_type_pset | ( | const Eina_Value_Type * | type,
|  | void * | mem,
|  | const void * | ptr )

inline static

Sets memory using type descriptor and pointer.

Parameters

  [in] | type | type reference of the source.
  [out] | mem | memory to operate, must be of size `type->value_size`.
  [in] | ptr | pointer to input value.

Returns
  EINA_TRUE on success, EINA_FALSE otherwise.

Since
  1.2

## eina_value_type_pget()

Eina_Bool eina_value_type_pget | ( | const Eina_Value_Type * | type,
|  | const void * | mem,
|  | void * | ptr )

inline static

Gets memory using type descriptor.

Parameters

  [in] | type | type reference of the source.
  [in] | mem | memory to operate, must be of size `type->value_size`.
  [out] | ptr | pointer to output.

Returns
  EINA_TRUE on success, EINA_FALSE otherwise.

Since
  1.2

References EINA_API, and EINA_VALUE_TYPE_OPTIONAL.