END_TEST START_TEST(eina_hash_extended) { Eina_Hash *hash = NULL; int i; fail_if(eina_init() != 2); hash = eina_hash_string_djb2_new(NULL); fail_if(hash == NULL); fail_if(eina_hash_direct_add(hash, "42", "42") != EINA_TRUE); for (i = 43; i < 3043; ++i) { char *tmp = malloc(10); fail_if(!tmp); eina_convert_itoa(i, tmp); fail_if(eina_hash_direct_add(hash, tmp, tmp) != EINA_TRUE); } fail_if(eina_hash_find(hash, "42") == NULL); eina_hash_free(hash); fail_if(eina_shutdown() != 1); }
static void eina_bench_lookup_djb2_inline(int request) { Eina_Hash *hash = NULL; Eina_Bench_DJB2 *elm; unsigned int i; unsigned int j; hash = eina_hash_string_djb2_new(free); for (i = 0; i < (unsigned int)request; ++i) { int length; elm = malloc(sizeof (Eina_Bench_DJB2) + 10); if (!elm) continue; elm->key = (char *)(elm + 1); length = eina_convert_itoa(i, elm->key) + 1; elm->value = i; eina_hash_direct_add_by_hash(hash, elm->key, length, eina_hash_djb2(elm->key, length), elm); } srand(time(NULL)); for (j = 0; j < 200; ++j) for (i = 0; i < (unsigned int)request; ++i) { char tmp_key[10]; int length = eina_convert_itoa(rand() % request, tmp_key) + 1; elm = eina_hash_find_by_hash(hash, tmp_key, length, eina_hash_djb2(tmp_key, length)); } eina_hash_free(hash); }
/** * @brief Set a param to a module * * This function sets a method call param named @p name to a module. It is used by the parser. * @param module The module (NOT NULL) * @param name The param name (NOT NULL) * @param value The param value * @param free_func The function to free @p value * @return EINA_TRUE on success, else EINA_FALSE */ Eina_Bool azy_server_module_param_set(Azy_Server_Module *module, const char *name, const void *value, Eina_Free_Cb free_func) { Azy_Server_Module_Param *param, *old; if (!AZY_MAGIC_CHECK(module, AZY_MAGIC_SERVER_MODULE)) { AZY_MAGIC_FAIL(module, AZY_MAGIC_SERVER_MODULE); return EINA_FALSE; } EINA_SAFETY_ON_NULL_RETURN_VAL(name, EINA_FALSE); EINA_SAFETY_ON_TRUE_RETURN_VAL(!name[0], EINA_FALSE); if (!module->params) module->params = eina_hash_string_djb2_new((Eina_Free_Cb)azy_server_module_param_free_); param = calloc(1, sizeof(Azy_Server_Module_Param)); EINA_SAFETY_ON_NULL_RETURN_VAL(param, EINA_FALSE); param->data = value; param->free_func = free_func; old = eina_hash_set(module->params, name, param); if (old) azy_server_module_param_free_(old); return EINA_TRUE; }
static void eina_bench_lookup_djb2(int request) { Eina_Hash *hash = NULL; int *tmp_val; unsigned int i; unsigned int j; hash = eina_hash_string_djb2_new(free); for (i = 0; i < (unsigned int)request; ++i) { char tmp_key[10]; tmp_val = malloc(sizeof (int)); if (!tmp_val) continue; eina_convert_itoa(i, tmp_key); *tmp_val = i; eina_hash_add(hash, tmp_key, tmp_val); } srand(time(NULL)); for (j = 0; j < 200; ++j) for (i = 0; i < (unsigned int)request; ++i) { char tmp_key[10]; eina_convert_itoa(rand() % request, tmp_key); tmp_val = eina_hash_find(hash, tmp_key); } eina_hash_free(hash); }
BorghenObject borghen_backend_create() { return eina_hash_string_djb2_new(NULL); }