| | |
| | | hashtable_foreach(hashtable, [&](int key, void * value){ |
| | | if(key >= 100 ) { |
| | | mqueue = (LockFreeQueue<shm_packet_t> *)hashtable_get(hashtable, key); |
| | | printf("%d\n", key); |
| | | printf("%10d \t %10d\n", key, mqueue->size()); |
| | | } else { |
| | | printf("%10d \t %10s\n", key, ""); |
| | | } |
| | | |
| | | }); |
| | | } |
| | | |
| | | void info(int key) { |
| | | LockFreeQueue<shm_packet_t> * mqueue; |
| | | hashtable_t *hashtable = mm_get_hashtable(); |
| | | mqueue = (LockFreeQueue<shm_packet_t> *) hashtable_get(hashtable, key); |
| | | printf("%10s: %-10p\n", "PTR", mqueue); |
| | | printf("%10s: %-10d\n", "KEY", key); |
| | | printf("%10s: %-10d\n", "LENGTH", mqueue->size()); |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | fpe("./shm_util list\n"); |
| | | fpe("# remove key 1001\n"); |
| | | fpe("./shm_util rm 1001\n"); |
| | | fpe("./shm_util info 1002\n"); |
| | | fpe("\n"); |
| | | } |
| | | |
| | |
| | | else if (strcmp("list", fun) == 0 ) { |
| | | list(); |
| | | } |
| | | else if (strcmp("info", fun) == 0 ) { |
| | | if(argc < 2) { |
| | | |
| | | usage(prog); |
| | | |
| | | } else { |
| | | for(i = 1; i < argc; i++) { |
| | | int key = atoi(argv[i]); |
| | | info(key); |
| | | } |
| | | } |
| | | } |
| | | else if (strcmp("rm", fun) == 0 ) { |
| | | if(argc < 2) { |
| | | usage(prog); |
| | | exit(1); |
| | | |
| | | } else { |
| | | for(i = 1; i < argc; i++) { |
| | | int key = atoi(argv[i]); |
| | | remove(key); |
| | | } |
| | | } |
| | | for(i = 1; i < argc; i++) { |
| | | int key = atoi(argv[i]); |
| | | remove(key); |
| | | } |
| | | |
| | | } |
| | | else if (strcmp("sendandrecv", fun) == 0 ) { |
| | | if(argc < 3) { |