From 293ae3c811b9e66369cafb7989fe06541d22387b Mon Sep 17 00:00:00 2001 From: fc_botelho Date: Thu, 27 Jul 2006 12:27:34 +0000 Subject: [PATCH] vector adapter example updated to be used with brz algorithm --- examples/vector_adapter_ex1.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/examples/vector_adapter_ex1.c b/examples/vector_adapter_ex1.c index da944e4..962b586 100755 --- a/examples/vector_adapter_ex1.c +++ b/examples/vector_adapter_ex1.c @@ -4,23 +4,38 @@ int main(int argc, char **argv) { // Creating a filled vector + unsigned int i = 0; const char *vector[] = {"aaaaaaaaaa", "bbbbbbbbbb", "cccccccccc", "dddddddddd", "eeeeeeeeee", "ffffffffff", "gggggggggg", "hhhhhhhhhh", "iiiiiiiiii", "jjjjjjjjjj"}; unsigned int nkeys = 10; + FILE* mphf_fd = fopen("temp.mph", "w"); // Source of keys cmph_io_adapter_t *source = cmph_io_vector_adapter((char **)vector, nkeys); //Create minimal perfect hash function using the default (chm) algorithm. cmph_config_t *config = cmph_config_new(source); + cmph_config_set_graphsize(config, 1.0); // this is not required, just to get a smaller function + cmph_config_set_algo(config, CMPH_BRZ); + cmph_config_set_mphf_fd(config, mphf_fd); cmph_t *hash = cmph_new(config); cmph_config_destroy(config); + cmph_dump(hash, mphf_fd); + cmph_destroy(hash); + fclose(mphf_fd); //Find key - const char *key = "jjjjjjjjjj"; - unsigned int id = cmph_search(hash, key, strlen(key)); - fprintf(stderr, "Id:%u\n", id); + mphf_fd = fopen("temp.mph", "r"); + hash = cmph_load(mphf_fd); + while (i < nkeys) { + const char *key = vector[i]; + unsigned int id = cmph_search(hash, key, strlen(key)); + fprintf(stderr, "key:%s -- hash:%u\n", key, id); + i++; + } + //Destroy hash cmph_destroy(hash); cmph_io_vector_adapter_destroy(source); + fclose(mphf_fd); return 0; }