#define FUNC_ACCESSOR_LOCK(Function) ((Eina_Accessor_Lock_Callback)Function)
EAPI void eina_accessor_free(Eina_Accessor *accessor) EINA_ARG_NONNULL(1);
-EAPI Eina_Bool eina_accessor_data_get(Eina_Accessor *accessor, unsigned int position, void **data) EINA_ARG_NONNULL(1);
+EAPI Eina_Bool eina_accessor_data_get(Eina_Accessor *accessor,
+ unsigned int position,
+ void **data) EINA_ARG_NONNULL(1);
EAPI void * eina_accessor_container_get(Eina_Accessor *accessor) EINA_ARG_NONNULL(1) EINA_PURE;
-EAPI void eina_accessor_over(Eina_Accessor *accessor, Eina_Each_Cb cb, unsigned int start, unsigned int end, const void *fdata) EINA_ARG_NONNULL(1, 2);
+EAPI void eina_accessor_over(Eina_Accessor *accessor,
+ Eina_Each_Cb cb,
+ unsigned int start,
+ unsigned int end,
+ const void *fdata) EINA_ARG_NONNULL(1, 2);
EAPI Eina_Bool eina_accessor_lock(Eina_Accessor *accessor) EINA_ARG_NONNULL(1);
EAPI Eina_Bool eina_accessor_unlock(Eina_Accessor *accessor) EINA_ARG_NONNULL(1);
pthread_rwlock_t lock;
Eina_Bool threadsafe:1;
#endif
-
EINA_MAGIC
};
EAPI Eina_Array * eina_array_new(unsigned int step) EINA_WARN_UNUSED_RESULT EINA_MALLOC EINA_WARN_UNUSED_RESULT;
EAPI Eina_Array * eina_array_threadsafe_new(unsigned int step) EINA_WARN_UNUSED_RESULT EINA_MALLOC EINA_WARN_UNUSED_RESULT;
EAPI void eina_array_free(Eina_Array *array) EINA_ARG_NONNULL(1);
-EAPI void eina_array_step_set(Eina_Array *array, unsigned int step) EINA_ARG_NONNULL(1);
+EAPI void eina_array_step_set(Eina_Array *array,
+ unsigned int step) EINA_ARG_NONNULL(1);
EAPI void eina_array_clean(Eina_Array *array) EINA_ARG_NONNULL(1);
EAPI void eina_array_flush(Eina_Array *array) EINA_ARG_NONNULL(1);
-EAPI Eina_Bool eina_array_remove(Eina_Array *array, Eina_Bool(*keep)(void *data, void *gdata), void *gdata) EINA_ARG_NONNULL(1, 2);
-
-static inline Eina_Bool eina_array_push(Eina_Array *array, const void *data) EINA_ARG_NONNULL(1, 2);
+EAPI Eina_Bool eina_array_remove(Eina_Array *array,
+ Eina_Bool(*keep)(void *data, void *gdata),
+ void *gdata) EINA_ARG_NONNULL(1, 2);
+static inline Eina_Bool eina_array_push(Eina_Array *array,
+ const void *data) EINA_ARG_NONNULL(1, 2);
static inline void * eina_array_pop(Eina_Array *array) EINA_ARG_NONNULL(1);
-static inline void * eina_array_data_get(const Eina_Array *array, unsigned int idx) EINA_ARG_NONNULL(1);
-static inline void eina_array_data_set(const Eina_Array *array, unsigned int idx, const void *data) EINA_ARG_NONNULL(1, 3);
+static inline void * eina_array_data_get(const Eina_Array *array,
+ unsigned int idx) EINA_ARG_NONNULL(1);
+static inline void eina_array_data_set(const Eina_Array *array,
+ unsigned int idx,
+ const void *data) EINA_ARG_NONNULL(1, 3);
static inline unsigned int eina_array_count_get(const Eina_Array *array) EINA_ARG_NONNULL(1);
-
EAPI Eina_Iterator * eina_array_iterator_new(const Eina_Array *array) EINA_MALLOC EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT;
EAPI Eina_Accessor * eina_array_accessor_new(const Eina_Array *array) EINA_MALLOC EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT;
-
static inline Eina_Bool eina_array_rdlock(const Eina_Array *array);
static inline Eina_Bool eina_array_wrlock(Eina_Array *array);
static inline Eina_Bool eina_array_unlock(const Eina_Array *array);
-
-static inline Eina_Bool eina_array_foreach(Eina_Array *array, Eina_Each_Cb cb, void *data);
-
+static inline Eina_Bool eina_array_foreach(Eina_Array *array,
+ Eina_Each_Cb cb,
+ void *data);
/**
* @def EINA_ARRAY_ITER_NEXT
* @brief Macro to iterate over an array easily.
*/
#define EINA_BENCHMARK(function) ((Eina_Benchmark_Specimens)function)
-EAPI Eina_Benchmark * eina_benchmark_new(const char *name, const char *run);
+EAPI Eina_Benchmark * eina_benchmark_new(const char *name,
+ const char *run);
EAPI void eina_benchmark_free(Eina_Benchmark *bench);
-EAPI Eina_Bool eina_benchmark_register(Eina_Benchmark *bench, const char *name, Eina_Benchmark_Specimens bench_cb, int count_start, int count_end, int count_set);
+EAPI Eina_Bool eina_benchmark_register(Eina_Benchmark *bench,
+ const char *name,
+ Eina_Benchmark_Specimens bench_cb,
+ int count_start,
+ int count_end,
+ int count_set);
EAPI Eina_Array * eina_benchmark_run(Eina_Benchmark *bench);
/**
* @{
*/
-EAPI Eina_Bool eina_binshare_init(void);
-EAPI Eina_Bool eina_binshare_shutdown(void);
-EAPI const void *eina_binshare_add_length(const void *obj, unsigned int olen) EINA_PURE EINA_WARN_UNUSED_RESULT;
-EAPI const void *eina_binshare_ref(const void *obj);
-EAPI void eina_binshare_del(const void *obj);
-EAPI int eina_binshare_length(const void *obj) EINA_WARN_UNUSED_RESULT;
-EAPI void eina_binshare_dump(void);
+EAPI Eina_Bool eina_binshare_init(void);
+EAPI Eina_Bool eina_binshare_shutdown(void);
+EAPI const void * eina_binshare_add_length(const void *obj,
+ unsigned int olen) EINA_PURE EINA_WARN_UNUSED_RESULT;
+EAPI const void * eina_binshare_ref(const void *obj);
+EAPI void eina_binshare_del(const void *obj);
+EAPI int eina_binshare_length(const void *obj) EINA_WARN_UNUSED_RESULT;
+EAPI void eina_binshare_dump(void);
/**
* @brief Retrieve an instance of a blob for use in a program.
*/
EAPI extern Eina_Error EINA_ERROR_CONVERT_OUTRUN_STRING_LENGTH;
-EAPI int eina_convert_itoa(int n, char *s) EINA_ARG_NONNULL(2);
-EAPI int eina_convert_xtoa(unsigned int n, char *s) EINA_ARG_NONNULL(2);
-EAPI int eina_convert_dtoa(double d, char *des) EINA_ARG_NONNULL(2);
-EAPI Eina_Bool eina_convert_atod(const char *src, int length, long long *m, long *e) EINA_ARG_NONNULL(1,3,4);
-EAPI int eina_convert_fptoa(Eina_F32p32 fp, char *des) EINA_ARG_NONNULL(2);
-EAPI Eina_Bool eina_convert_atofp(const char *src, int length, Eina_F32p32 *fp) EINA_ARG_NONNULL(1,3);
+EAPI int eina_convert_itoa(int n,
+ char *s) EINA_ARG_NONNULL(2);
+EAPI int eina_convert_xtoa(unsigned int n,
+ char *s) EINA_ARG_NONNULL(2);
+EAPI int eina_convert_dtoa(double d,
+ char *des) EINA_ARG_NONNULL(2);
+EAPI Eina_Bool eina_convert_atod(const char *src,
+ int length,
+ long long *m,
+ long *e) EINA_ARG_NONNULL(1,3,4);
+EAPI int eina_convert_fptoa(Eina_F32p32 fp,
+ char *des) EINA_ARG_NONNULL(2);
+EAPI Eina_Bool eina_convert_atofp(const char *src,
+ int length,
+ Eina_F32p32 *fp) EINA_ARG_NONNULL(1,3);
/**
* @}
*/
typedef struct _Eina_Counter Eina_Counter;
-EAPI Eina_Counter * eina_counter_new( const char *name) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
-EAPI void eina_counter_free( Eina_Counter *counter) EINA_ARG_NONNULL(1);
-EAPI void eina_counter_start( Eina_Counter *counter) EINA_ARG_NONNULL(1);
-EAPI void eina_counter_stop( Eina_Counter *counter, int specimen) EINA_ARG_NONNULL(1);
-EAPI char * eina_counter_dump( Eina_Counter *counter) EINA_ARG_NONNULL(1);
+EAPI Eina_Counter * eina_counter_new(const char *name) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
+EAPI void eina_counter_free(Eina_Counter *counter) EINA_ARG_NONNULL(1);
+EAPI void eina_counter_start(Eina_Counter *counter) EINA_ARG_NONNULL(1);
+EAPI void eina_counter_stop(Eina_Counter *counter,
+ int specimen) EINA_ARG_NONNULL(1);
+EAPI char * eina_counter_dump(Eina_Counter *counter) EINA_ARG_NONNULL(1);
/**
* @}
*/
EAPI extern Eina_Error EINA_ERROR_OUT_OF_MEMORY;
-EAPI Eina_Error eina_error_msg_register(const char *msg) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT;
-EAPI Eina_Error eina_error_msg_static_register(const char *msg) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT;
-EAPI Eina_Bool eina_error_msg_modify(Eina_Error error, const char *msg) EINA_ARG_NONNULL(1, 2);
-EAPI Eina_Error eina_error_get(void);
-EAPI void eina_error_set(Eina_Error err);
-EAPI const char *eina_error_msg_get(Eina_Error error) EINA_PURE;
+EAPI Eina_Error eina_error_msg_register(const char *msg) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT;
+EAPI Eina_Error eina_error_msg_static_register(const char *msg) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT;
+EAPI Eina_Bool eina_error_msg_modify(Eina_Error error,
+ const char *msg) EINA_ARG_NONNULL(1, 2);
+EAPI Eina_Error eina_error_get(void);
+EAPI void eina_error_set(Eina_Error err);
+EAPI const char * eina_error_msg_get(Eina_Error error) EINA_PURE;
/**
* @}
* @typedef Eina_File_Dir_List_Cb
* Type for a callback.
*/
+typedef struct _Eina_File_Direct_Info Eina_File_Direct_Info;
typedef void (*Eina_File_Dir_List_Cb)(const char *name, const char *path, void *data);
+struct _Eina_File_Direct_Info
+{
+ size_t path_length; /* size of the whole path */
+ size_t name_length; /* size of the filename/basename component */
+ size_t name_start; /* where the filename/basename component starts */
+ char path[PATH_MAX];
+ const struct dirent *dirent;
+};
+
/**
* @def EINA_FILE_DIR_LIST_CB
* @brief cast to an #Eina_File_Dir_List_Cb.
*/
#define EINA_FILE_DIR_LIST_CB(function) ((Eina_File_Dir_List_Cb)function)
-EAPI Eina_Bool eina_file_dir_list(const char *dir, Eina_Bool recursive, Eina_File_Dir_List_Cb cb, void *data) EINA_ARG_NONNULL(1, 3);
+EAPI Eina_Bool eina_file_dir_list(const char *dir,
+ Eina_Bool recursive,
+ Eina_File_Dir_List_Cb cb,
+ void *data) EINA_ARG_NONNULL(1, 3);
EAPI Eina_Array * eina_file_split(char *path) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC;
EAPI Eina_Iterator * eina_file_ls(const char *dir) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC;
-
-
-typedef struct _Eina_File_Direct_Info Eina_File_Direct_Info;
-struct _Eina_File_Direct_Info
-{
- size_t path_length; /* size of the whole path */
- size_t name_length; /* size of the filename/basename component */
- size_t name_start; /* where the filename/basename component starts */
- char path[PATH_MAX];
- const struct dirent *dirent;
-};
-
EAPI Eina_Iterator * eina_file_direct_ls(const char *dir) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC;
/**
static inline Eina_F32p32 eina_f32p32_double_from(double v);
static inline double eina_f32p32_double_to(Eina_F32p32 v);
-static inline Eina_F32p32 eina_f32p32_add(Eina_F32p32 a, Eina_F32p32 b);
-static inline Eina_F32p32 eina_f32p32_sub(Eina_F32p32 a, Eina_F32p32 b);
-static inline Eina_F32p32 eina_f32p32_mul(Eina_F32p32 a, Eina_F32p32 b);
-static inline Eina_F32p32 eina_f32p32_scale(Eina_F32p32 a, int b);
-static inline Eina_F32p32 eina_f32p32_div(Eina_F32p32 a, Eina_F32p32 b);
+static inline Eina_F32p32 eina_f32p32_add(Eina_F32p32 a,
+ Eina_F32p32 b);
+static inline Eina_F32p32 eina_f32p32_sub(Eina_F32p32 a,
+ Eina_F32p32 b);
+static inline Eina_F32p32 eina_f32p32_mul(Eina_F32p32 a,
+ Eina_F32p32 b);
+static inline Eina_F32p32 eina_f32p32_scale(Eina_F32p32 a,
+ int b);
+static inline Eina_F32p32 eina_f32p32_div(Eina_F32p32 a,
+ Eina_F32p32 b);
static inline Eina_F32p32 eina_f32p32_sqrt(Eina_F32p32 a);
static inline unsigned int eina_f32p32_fracc_get(Eina_F32p32 v);
static inline Eina_F16p16 eina_f16p16_float_from(float v);
static inline float eina_f16p16_float_to(Eina_F16p16 v);
-static inline Eina_F16p16 eina_f16p16_add(Eina_F16p16 a, Eina_F16p16 b);
-static inline Eina_F16p16 eina_f16p16_sub(Eina_F16p16 a, Eina_F16p16 b);
-static inline Eina_F16p16 eina_f16p16_mul(Eina_F16p16 a, Eina_F16p16 b);
-static inline Eina_F16p16 eina_f16p16_scale(Eina_F16p16 a, int b);
-static inline Eina_F16p16 eina_f16p16_div(Eina_F16p16 a, Eina_F16p16 b);
+static inline Eina_F16p16 eina_f16p16_add(Eina_F16p16 a,
+ Eina_F16p16 b);
+static inline Eina_F16p16 eina_f16p16_sub(Eina_F16p16 a,
+ Eina_F16p16 b);
+static inline Eina_F16p16 eina_f16p16_mul(Eina_F16p16 a,
+ Eina_F16p16 b);
+static inline Eina_F16p16 eina_f16p16_scale(Eina_F16p16 a,
+ int b);
+static inline Eina_F16p16 eina_f16p16_div(Eina_F16p16 a,
+ Eina_F16p16 b);
static inline Eina_F16p16 eina_f16p16_sqrt(Eina_F16p16 a);
static inline unsigned int eina_f16p16_fracc_get(Eina_F16p16 v);
static inline Eina_F8p24 eina_f8p24_float_from(float v);
static inline float eina_f8p24_float_to(Eina_F8p24 v);
-static inline Eina_F8p24 eina_f8p24_add(Eina_F8p24 a, Eina_F8p24 b);
-static inline Eina_F8p24 eina_f8p24_sub(Eina_F8p24 a, Eina_F8p24 b);
-static inline Eina_F8p24 eina_f8p24_mul(Eina_F8p24 a, Eina_F8p24 b);
-static inline Eina_F8p24 eina_f8p24_scale(Eina_F8p24 a, int b);
-static inline Eina_F8p24 eina_f8p24_div(Eina_F8p24 a, Eina_F8p24 b);
+static inline Eina_F8p24 eina_f8p24_add(Eina_F8p24 a,
+ Eina_F8p24 b);
+static inline Eina_F8p24 eina_f8p24_sub(Eina_F8p24 a,
+ Eina_F8p24 b);
+static inline Eina_F8p24 eina_f8p24_mul(Eina_F8p24 a,
+ Eina_F8p24 b);
+static inline Eina_F8p24 eina_f8p24_scale(Eina_F8p24 a,
+ int b);
+static inline Eina_F8p24 eina_f8p24_div(Eina_F8p24 a,
+ Eina_F8p24 b);
static inline Eina_F8p24 eina_f8p24_sqrt(Eina_F8p24 a);
static inline unsigned int eina_f8p24_fracc_get(Eina_F8p24 v);
#define EINA_KEY_HASH(Function) ((Eina_Key_Hash)Function)
typedef Eina_Bool (*Eina_Hash_Foreach)(const Eina_Hash *hash, const void *key, void *data, void *fdata);
-EAPI Eina_Hash * eina_hash_new(Eina_Key_Length key_length_cb, Eina_Key_Cmp key_cmp_cb, Eina_Key_Hash key_hash_cb, Eina_Free_Cb data_free_cb, int buckets_power_size) EINA_MALLOC EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(2, 3);
+EAPI Eina_Hash * eina_hash_new(Eina_Key_Length key_length_cb,
+ Eina_Key_Cmp key_cmp_cb,
+ Eina_Key_Hash key_hash_cb,
+ Eina_Free_Cb data_free_cb,
+ int buckets_power_size) EINA_MALLOC EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(2, 3);
EAPI Eina_Hash * eina_hash_string_djb2_new(Eina_Free_Cb data_free_cb);
EAPI Eina_Hash * eina_hash_string_superfast_new(Eina_Free_Cb data_free_cb);
EAPI Eina_Hash * eina_hash_string_small_new(Eina_Free_Cb data_free_cb);
EAPI Eina_Hash * eina_hash_int64_new(Eina_Free_Cb data_free_cb);
EAPI Eina_Hash * eina_hash_pointer_new(Eina_Free_Cb data_free_cb);
EAPI Eina_Hash * eina_hash_stringshared_new(Eina_Free_Cb data_free_cb);
-EAPI Eina_Hash * eina_hash_threadsafe_new(Eina_Key_Length key_length_cb, Eina_Key_Cmp key_cmp_cb, Eina_Key_Hash key_hash_cb, Eina_Free_Cb data_free_cb, int buckets_power_size) EINA_MALLOC EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(2, 3);
+EAPI Eina_Hash * eina_hash_threadsafe_new(Eina_Key_Length key_length_cb,
+ Eina_Key_Cmp key_cmp_cb,
+ Eina_Key_Hash key_hash_cb,
+ Eina_Free_Cb data_free_cb,
+ int buckets_power_size) EINA_MALLOC EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(2, 3);
EAPI Eina_Hash * eina_hash_threadsafe_string_djb2_new(Eina_Free_Cb data_free_cb);
EAPI Eina_Hash * eina_hash_threadsafe_string_superfast_new(Eina_Free_Cb data_free_cb);
EAPI Eina_Hash * eina_hash_threadsafe_string_small_new(Eina_Free_Cb data_free_cb);
EAPI Eina_Hash * eina_hash_threadsafe_int64_new(Eina_Free_Cb data_free_cb);
EAPI Eina_Hash * eina_hash_threadsafe_pointer_new(Eina_Free_Cb data_free_cb);
EAPI Eina_Hash * eina_hash_threadsafe_stringshared_new(Eina_Free_Cb data_free_cb);
-EAPI Eina_Bool eina_hash_add(Eina_Hash *hash, const void *key, const void *data) EINA_ARG_NONNULL(1, 2, 3);
-EAPI Eina_Bool eina_hash_direct_add(Eina_Hash *hash, const void *key, const void *data) EINA_ARG_NONNULL(1, 2, 3);
-EAPI Eina_Bool eina_hash_del(Eina_Hash *hash, const void *key, const void *data) EINA_ARG_NONNULL(1);
-EAPI void * eina_hash_find(const Eina_Hash *hash, const void *key) EINA_ARG_NONNULL(1, 2);
-EAPI void * eina_hash_modify(Eina_Hash *hash, const void *key, const void *data) EINA_ARG_NONNULL(1, 2, 3);
-EAPI void * eina_hash_set(Eina_Hash *hash, const void *key, const void *data) EINA_ARG_NONNULL(1, 2, 3);
-EAPI Eina_Bool eina_hash_move(Eina_Hash *hash, const void *old_key, const void *new_key) EINA_ARG_NONNULL(1, 2, 3);
+EAPI Eina_Bool eina_hash_add(Eina_Hash *hash,
+ const void *key,
+ const void *data) EINA_ARG_NONNULL(1, 2, 3);
+EAPI Eina_Bool eina_hash_direct_add(Eina_Hash *hash,
+ const void *key,
+ const void *data) EINA_ARG_NONNULL(1, 2, 3);
+EAPI Eina_Bool eina_hash_del(Eina_Hash *hash,
+ const void *key,
+ const void *data) EINA_ARG_NONNULL(1);
+EAPI void * eina_hash_find(const Eina_Hash *hash,
+ const void *key) EINA_ARG_NONNULL(1, 2);
+EAPI void * eina_hash_modify(Eina_Hash *hash,
+ const void *key,
+ const void *data) EINA_ARG_NONNULL(1, 2, 3);
+EAPI void * eina_hash_set(Eina_Hash *hash,
+ const void *key,
+ const void *data) EINA_ARG_NONNULL(1, 2, 3);
+EAPI Eina_Bool eina_hash_move(Eina_Hash *hash,
+ const void *old_key,
+ const void *new_key) EINA_ARG_NONNULL(1, 2, 3);
EAPI void eina_hash_free(Eina_Hash *hash) EINA_ARG_NONNULL(1);
EAPI void eina_hash_free_buckets(Eina_Hash *hash) EINA_ARG_NONNULL(1);
EAPI int eina_hash_population(const Eina_Hash *hash) EINA_ARG_NONNULL(1);
-EAPI Eina_Bool eina_hash_add_by_hash(Eina_Hash *hash, const void *key, int key_length, int key_hash, const void *data) EINA_ARG_NONNULL(1, 2, 5);
-EAPI Eina_Bool eina_hash_direct_add_by_hash(Eina_Hash *hash, const void *key, int key_length, int key_hash, const void *data) EINA_ARG_NONNULL(1, 2, 5);
-EAPI Eina_Bool eina_hash_del_by_key_hash(Eina_Hash *hash, const void *key, int key_length, int key_hash) EINA_ARG_NONNULL(1, 2);
-EAPI Eina_Bool eina_hash_del_by_key(Eina_Hash *hash, const void *key) EINA_ARG_NONNULL(1, 2);
-EAPI Eina_Bool eina_hash_del_by_data(Eina_Hash *hash, const void *data) EINA_ARG_NONNULL(1, 2);
-EAPI Eina_Bool eina_hash_del_by_hash(Eina_Hash *hash, const void *key, int key_length, int key_hash, const void *data) EINA_ARG_NONNULL(1);
-EAPI void * eina_hash_find_by_hash(const Eina_Hash *hash, const void *key, int key_length, int key_hash) EINA_ARG_NONNULL(1, 2);
-EAPI void * eina_hash_modify_by_hash(Eina_Hash *hash, const void *key, int key_length, int key_hash, const void *data) EINA_ARG_NONNULL(1, 2, 5);
+EAPI Eina_Bool eina_hash_add_by_hash(Eina_Hash *hash,
+ const void *key,
+ int key_length,
+ int key_hash,
+ const void *data) EINA_ARG_NONNULL(1, 2, 5);
+EAPI Eina_Bool eina_hash_direct_add_by_hash(Eina_Hash *hash,
+ const void *key,
+ int key_length,
+ int key_hash,
+ const void *data) EINA_ARG_NONNULL(1, 2, 5);
+EAPI Eina_Bool eina_hash_del_by_key_hash(Eina_Hash *hash,
+ const void *key,
+ int key_length,
+ int key_hash) EINA_ARG_NONNULL(1, 2);
+EAPI Eina_Bool eina_hash_del_by_key(Eina_Hash *hash,
+ const void *key) EINA_ARG_NONNULL(1, 2);
+EAPI Eina_Bool eina_hash_del_by_data(Eina_Hash *hash,
+ const void *data) EINA_ARG_NONNULL(1, 2);
+EAPI Eina_Bool eina_hash_del_by_hash(Eina_Hash *hash,
+ const void *key,
+ int key_length,
+ int key_hash,
+ const void *data) EINA_ARG_NONNULL(1);
+EAPI void * eina_hash_find_by_hash(const Eina_Hash *hash,
+ const void *key,
+ int key_length,
+ int key_hash) EINA_ARG_NONNULL(1, 2);
+EAPI void * eina_hash_modify_by_hash(Eina_Hash *hash,
+ const void *key,
+ int key_length,
+ int key_hash,
+ const void *data) EINA_ARG_NONNULL(1, 2, 5);
EAPI Eina_Iterator * eina_hash_iterator_key_new(const Eina_Hash *hash) EINA_MALLOC EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT;
EAPI Eina_Iterator * eina_hash_iterator_data_new(const Eina_Hash *hash) EINA_MALLOC EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT;
EAPI Eina_Iterator * eina_hash_iterator_tuple_new(const Eina_Hash *hash) EINA_MALLOC EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT;
-EAPI void eina_hash_foreach(const Eina_Hash *hash, Eina_Hash_Foreach cb, const void *fdata) EINA_ARG_NONNULL(1, 2);
+EAPI void eina_hash_foreach(const Eina_Hash *hash,
+ Eina_Hash_Foreach cb,
+ const void *fdata) EINA_ARG_NONNULL(1, 2);
/* Paul Hsieh (http://www.azillionmonkeys.com/qed/hash.html) hash function used by WebCore (http://webkit.org/blog/8/hashtables-part-2/) */
-EAPI int eina_hash_superfast(const char *key, int len) EINA_ARG_NONNULL(1);
+EAPI int eina_hash_superfast(const char *key,
+ int len) EINA_ARG_NONNULL(1);
/* Hash function first reported by dan bernstein many years ago in comp.lang.c */
-static inline int eina_hash_djb2(const char *key, int len) EINA_ARG_NONNULL(1);
-static inline int eina_hash_djb2_len(const char *key, int *plen) EINA_ARG_NONNULL(1, 2);
+static inline int eina_hash_djb2(const char *key,
+ int len) EINA_ARG_NONNULL(1);
+static inline int eina_hash_djb2_len(const char *key,
+ int *plen) EINA_ARG_NONNULL(1, 2);
/* Hash function from http://www.concentric.net/~Ttwang/tech/inthash.htm */
-static inline int eina_hash_int32(const unsigned int *pkey, int len) EINA_ARG_NONNULL(1);
-static inline int eina_hash_int64(const unsigned long int *pkey, int len) EINA_ARG_NONNULL(1);
+static inline int eina_hash_int32(const unsigned int *pkey,
+ int len) EINA_ARG_NONNULL(1);
+static inline int eina_hash_int64(const unsigned long int *pkey,
+ int len) EINA_ARG_NONNULL(1);
#include "eina_inline_hash.x"
#define _EINA_INLIST_CONTAINER(ref, ptr) (void *)((char *)(ptr) - \
_EINA_INLIST_OFFSET(ref))
-#define EINA_INLIST_FOREACH(list, l) for (l = NULL, \
- l = \
- (list ? _EINA_INLIST_CONTAINER(l, \
- list) \
- : NULL); \
- l; \
- l = \
- (EINA_INLIST_GET(l)->next ? \
- _EINA_INLIST_CONTAINER(l, \
- EINA_INLIST_GET( \
- l)-> \
- next) : \
- NULL))
-#define EINA_INLIST_REVERSE_FOREACH(list, l) for (l = NULL, \
- l = \
- (list ? \
- _EINA_INLIST_CONTAINER(l, \
- list \
- -> \
- last) \
- : NULL); \
- l; \
- l = \
- (EINA_INLIST_GET(l)->prev \
- ? _EINA_INLIST_CONTAINER( \
- l, \
- EINA_INLIST_GET( \
- l) \
- ->prev) : NULL))
-
+#define EINA_INLIST_FOREACH(list, l) \
+ for (l = NULL, l = (list ? _EINA_INLIST_CONTAINER(l, list) : NULL); l; \
+ l = (EINA_INLIST_GET(l)->next ? _EINA_INLIST_CONTAINER(l, EINA_INLIST_GET(l)->next) : NULL))
+#define EINA_INLIST_REVERSE_FOREACH(list, l) \
+ for (l = NULL, l = (list ? _EINA_INLIST_CONTAINER(l, list->last) : NULL); \
+ l; l = (EINA_INLIST_GET(l)->prev ? _EINA_INLIST_CONTAINER(l, EINA_INLIST_GET(l)->prev) : NULL))
/**
* @}