--- libelwix/example/test_index.c 2022/01/05 23:03:40 1.1 +++ libelwix/example/test_index.c 2022/01/06 15:13:01 1.2 @@ -0,0 +1,97 @@ +#include +#include +#include +#include + + +int +main(int argc, char **argv) +{ + index_t *idx; + index_list_t lst; + int i; + u_short k; + array_t *arr; + char str[256]; + ait_val_t *v; + + if (!(idx = index_Init(NULL))) + return 1; + + for (i = 0; i < argc; i++) { + k = crcFletcher16((u_short*) argv[i], strlen(argv[i]) / 2); + index_add(idx, k, argv[i], strlen(argv[i]), NULL); + } + + index_dump(idx); + + printf("input key="); + scanf("%hu", &k); + arr = index_getArray(idx, k); + if (!arr) + printf("error in array!!!\n"); + else { + for (i = 0; i < array_Size(arr); i++) { + lst = array_Get(arr, i); + printf("Array[%d]: hash=0x%x ptr=%s len=%lu\n", i, + index_Hash(lst), (const char*) index_Ptr(lst), index_Len(lst)); + } + array_Destroy(&arr); + } + + lst = index_getList(idx, k); + if (!lst) + printf("Key list is empty!\n"); + else + while (lst) { + printf("GetList[%hu]:: hash=0x%x ptr=%s len=%lu\n", k, + index_Hash(lst), (const char*) index_Ptr(lst), index_Len(lst)); + lst = index_Next(lst); + } + + printf("input key="); + scanf("%hu", &k); + memset(str, 0, sizeof str); + printf("input hash="); + scanf("%255s", str); + i = strtol(str, NULL, 0); + lst = index_get2(idx, k, i); + v = index_getVar(idx, k, i); + if (!lst) + printf("Item not found!!!\n"); + else + printf("Get2:: hash=0x%x ptr=%s len=%lu\n", + index_Hash(lst), (const char*) index_Ptr(lst), index_Len(lst)); + if (!v) + printf("Item not found!!!\n"); + else { + printf("GetVar:: ptr=%s len=%u\n", + (const char*) AIT_GET_PTR(v), AIT_LEN(v)); + ait_freeVar(&v); + } + + printf("delete key="); + scanf("%hu", &k); + index_delList(idx, k); + index_dump(idx); + + printf("delete key="); + scanf("%hu", &k); + memset(str, 0, sizeof str); + printf("input str="); + scanf("%255s", str); + index_del(idx, k, str, strlen(str)); + index_dump(idx); + + printf("delete key="); + scanf("%hu", &k); + memset(str, 0, sizeof str); + printf("input hash="); + scanf("%255s", str); + i = strtol(str, NULL, 0); + index_del2(idx, k, i); + index_dump(idx); + + index_Destroy(&idx); + return 0; +}