Data Structures | |
struct | _Eina_Value_Hash |
Used to store the hash and its subtype. More... | |
Typedefs | |
typedef struct _Eina_Value_Hash | Eina_Value_Hash |
Value type for EINA_VALUE_TYPE_HASH. More... | |
Functions | |
Eina_Value * | eina_value_hash_new (const Eina_Value_Type *subtype, unsigned int buckets_power_size) |
Create generic value storage of type hash. More... | |
static Eina_Bool | eina_value_hash_setup (Eina_Value *value, const Eina_Value_Type *subtype, unsigned int buckets_power_size) |
Initialize generic value storage of type hash. More... | |
static unsigned int | eina_value_hash_population (const Eina_Value *value) |
Query number of elements in value of hash type. More... | |
static Eina_Bool | eina_value_hash_del (Eina_Value *value, const char *key) |
Remove element at given position in value of hash type. More... | |
static Eina_Bool | eina_value_hash_set (Eina_Value *value, const char *key,...) |
Set the generic value in an hash member. More... | |
static Eina_Bool | eina_value_hash_get (const Eina_Value *value, const char *key,...) |
Get the generic value from an hash member. More... | |
static Eina_Bool | eina_value_hash_vset (Eina_Value *value, const char *key, va_list args) |
Set the generic value in an hash member. More... | |
static Eina_Bool | eina_value_hash_vget (const Eina_Value *value, const char *key, va_list args) |
Get the generic value from an hash member. More... | |
static Eina_Bool | eina_value_hash_pset (Eina_Value *value, const char *key, const void *ptr) |
Set the generic value in an hash member from pointer. More... | |
static Eina_Bool | eina_value_hash_pget (const Eina_Value *value, const char *key, void *ptr) |
Get the generic value to pointer from an hash member. More... | |
Detailed Description
Typedef Documentation
Function Documentation
Eina_Value* eina_value_hash_new | ( | const Eina_Value_Type * | subtype, |
unsigned int | buckets_power_size | ||
) |
Create generic value storage of type hash.
- Parameters
-
subtype how to manage this hash members. buckets_power_size how 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 and EINA_ERROR_OUT_OF_MEMORY or EINA_ERROR_VALUE_FAILED is set.
- Note
- this creates from mempool and then uses eina_value_hash_setup().
- Since
- 1.2
References EINA_FALSE, eina_mempool_free(), eina_mempool_malloc(), eina_value_hash_setup(), and eina_value_type_check().
|
inlinestatic |
Initialize generic value storage of type hash.
- Parameters
-
value value object subtype how to manage this hash members. buckets_power_size how 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 and EINA_ERROR_OUT_OF_MEMORY or EINA_ERROR_VALUE_FAILED is set.
- See Also
- eina_value_flush()
- Since
- 1.2
Referenced by eina_value_hash_new().
|
inlinestatic |
Query number of elements in value of hash type.
- Parameters
-
value value object.
- Returns
- number of child elements.
- Since
- 1.2
|
inlinestatic |
Remove element at given position in value of hash type.
- Parameters
-
value value object. key key to find the member
- Returns
- EINA_TRUE on success, EINA_FALSE otherwise.
- Since
- 1.2
|
inlinestatic |
Set the generic value in an hash member.
- Parameters
-
value source value object key key 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*
- Since
- 1.2
|
inlinestatic |
Get the generic value from an hash member.
- Parameters
-
value source value object key key 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*
- Since
- 1.2
|
inlinestatic |
Set the generic value in an hash member.
- Parameters
-
value source value object key key to find the member args variable argument
- Returns
- EINA_TRUE on success, EINA_FALSE otherwise.
- Since
- 1.2
|
inlinestatic |
Get the generic value from an hash member.
- Parameters
-
value source value object key key to find the member 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.
- Since
- 1.2
|
inlinestatic |
Set the generic value in an hash member from pointer.
- Parameters
-
value source value object key key to find the member 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_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.
- Since
- 1.2
|
inlinestatic |
Get the generic value to pointer from an hash member.
- Parameters
-
value source value object key key to find the member 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_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*
- Since
- 1.2