Tizen Native API  3.0
Generic Value Hash management

Functions

Eina_Valueeina_value_hash_new (const Eina_Value_Type *subtype, unsigned int buckets_power_size)
 Creates generic value storage of type hash.
static Eina_Bool eina_value_hash_setup (Eina_Value *value, const Eina_Value_Type *subtype, unsigned int buckets_power_size)
 Initializes generic value storage of type hash.
static unsigned int eina_value_hash_population (const Eina_Value *value)
 Queries number of elements in value of hash type.
static Eina_Bool eina_value_hash_del (Eina_Value *value, const char *key)
 Removes element at given position in value of hash type.
static Eina_Bool eina_value_hash_set (Eina_Value *value, const char *key,...)
 Sets the generic value in an hash member.
static Eina_Bool eina_value_hash_get (const Eina_Value *value, const char *key,...)
 Gets the generic value from an hash member.
static Eina_Bool eina_value_hash_vset (Eina_Value *value, const char *key, va_list args)
 Sets the generic value in an hash member.
static Eina_Bool eina_value_hash_vget (const Eina_Value *value, const char *key, va_list args)
 Gets the generic value from an hash member.
static Eina_Bool eina_value_hash_pset (Eina_Value *value, const char *key, const void *ptr)
 Sets the generic value in an hash member from pointer.
static Eina_Bool eina_value_hash_pget (const Eina_Value *value, const char *key, void *ptr)
 Gets the generic value to pointer from an hash member.

Typedefs

typedef struct _Eina_Value_Hash Eina_Value_Hash

Typedef Documentation

Value type for EINA_VALUE_TYPE_HASH.

See also:
_Eina_Value_Hash explains fields.
Since (EFL) :
1.2

Function Documentation

static Eina_Bool eina_value_hash_del ( Eina_Value value,
const char *  key 
) [static]

Removes element at given position in value of hash type.

Parameters:
valuevalue object.
keykey to find the member
Returns:
EINA_TRUE on success, EINA_FALSE otherwise.
Since (EFL) :
1.2
static Eina_Bool eina_value_hash_get ( const Eina_Value value,
const char *  key,
  ... 
) [static]

Gets the generic value from an hash member.

Parameters:
valueSource value object
keyKey to find 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_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_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_hash_new(EINA_VALUE_TYPE_INT, 0);
     int x;

     eina_value_hash_set(value, "abc", 1234);
     eina_value_hash_get(value, "abc", &x);
     eina_value_free(value);
See also:
eina_value_hash_set()
eina_value_hash_vset()
eina_value_hash_pset()
Since (EFL) :
1.2
Eina_Value* eina_value_hash_new ( const Eina_Value_Type subtype,
unsigned int  buckets_power_size 
)

Creates generic value storage of type hash.

Parameters:
subtypeHow to manage this hash members.
buckets_power_sizeHow to allocate hash buckets (2 ^ buckets_power_size), if zero then a sane value is chosen.
Returns:
The new value, or NULL on failure.

Create a new generic value storage of type hash. 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_hash_setup().
See also:
eina_value_free()
eina_value_hash_setup()
Since (EFL) :
1.2
Since :
3.0
static Eina_Bool eina_value_hash_pget ( const Eina_Value value,
const char *  key,
void *  ptr 
) [static]

Gets the generic value to pointer from an hash member.

Parameters:
valueSource value object
keyKey to find the member
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_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_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_hash_new(EINA_VALUE_TYPE_INT, 0);
     int x;

     eina_value_hash_set(value, "abc", 1234);
     eina_value_hash_pget(value, "abc", &x);
     eina_value_free(value);
See also:
eina_value_hash_set()
eina_value_hash_vset()
eina_value_hash_pset()
Since (EFL) :
1.2
static unsigned int eina_value_hash_population ( const Eina_Value value) [static]

Queries number of elements in value of hash type.

Parameters:
valuevalue object.
Returns:
number of child elements.
Since (EFL) :
1.2
static Eina_Bool eina_value_hash_pset ( Eina_Value value,
const char *  key,
const void *  ptr 
) [static]

Sets the generic value in an hash member from pointer.

Parameters:
valueSource value object
keyKey to find the member
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_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_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_hash_new(EINA_VALUE_TYPE_INT, 0);
     int x = 1234;

     eina_value_hash_pset(value, "abc", &x);
     eina_value_hash_pget(value, "abc", &x);
     eina_value_free(value);
See also:
eina_value_hash_set()
eina_value_hash_get()
eina_value_hash_vset()
Since (EFL) :
1.2
static Eina_Bool eina_value_hash_set ( Eina_Value value,
const char *  key,
  ... 
) [static]

Sets the generic value in an hash member.

Parameters:
valueSource value object
keyKey to find 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_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_hash_new(EINA_VALUE_TYPE_INT, 0);
     int x;

     eina_value_hash_set(value, "abc", 5678);
     eina_value_hash_get(value, "abc", &x);
     eina_value_free(value);
See also:
eina_value_hash_get()
eina_value_hash_vset()
eina_value_hash_pset()
eina_value_hash_del()
Since (EFL) :
1.2
static Eina_Bool eina_value_hash_setup ( Eina_Value value,
const Eina_Value_Type subtype,
unsigned int  buckets_power_size 
) [static]

Initializes generic value storage of type hash.

Parameters:
valueValue object
subtypeHow to manage this hash members.
buckets_power_sizeHow to allocate hash buckets (2 ^ buckets_power_size), if zero then a sane value is chosen.
Returns:
EINA_TRUE on success, EINA_FALSE otherwise.

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

This is the same as calling eina_value_set() with EINA_VALUE_TYPE_HASH followed by eina_value_pset() with the Eina_Value_Hash 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 (EFL) :
1.2
static Eina_Bool eina_value_hash_vget ( const Eina_Value value,
const char *  key,
va_list  args 
) [static]

Gets the generic value from an hash member.

Parameters:
valueSource value object
keyKey to find the member
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_hash_vset()
eina_value_hash_get()
eina_value_hash_pget()
Since (EFL) :
1.2
static Eina_Bool eina_value_hash_vset ( Eina_Value value,
const char *  key,
va_list  args 
) [static]

Sets the generic value in an hash member.

Parameters:
valueSource value object
keyKey to find the member
argsVariable argument
Returns:
EINA_TRUE on success, EINA_FALSE otherwise.
See also:
eina_value_hash_set()
eina_value_hash_get()
eina_value_hash_pset()
Since (EFL) :
1.2