#include #include #include "timetableq.h" struct timetablequeue_item { char label[64]; int x, y, z; time_t timelimit; LIST_ENTRY(timetablequeue_item) timetablelist; }; #define NTIMETABLE 100 TIMETABLEQ_HEAD(, timetablequeue_item, NTIMETABLE) timetablequeue_head; int main(int argc, char *argv[]) { struct timetablequeue_item *p; int i; TIMETABLEQ_INIT(&timetablequeue_head, NTIMETABLE); for (i = 0; i < 100; i++) { p = malloc(sizeof(*p)); TIMETABLEQ_INSERT_HEAD(&timetablequeue_head, i / 10, p, timetablelist); } TIMETABLEQ_DUMP(&timetablequeue_head, timetablequeue_item, timetablelist); TIMETABLEQ_REMOVE(p, timetablelist); printf("=== table rotate\n"); TIMETABLEQ_ROTATE(&timetablequeue_head); TIMETABLEQ_ROTATE(&timetablequeue_head); TIMETABLEQ_ROTATE(&timetablequeue_head); TIMETABLEQ_DUMP(&timetablequeue_head, timetablequeue_item, timetablelist); printf("=== table top\n"); TIMETABLEQ_FOREACH_TABLE(p, &timetablequeue_head, 0, timetablelist) { printf("p = %p\n", p); } printf("=== table rotate\n"); TIMETABLEQ_ROTATE(&timetablequeue_head); printf("=== table top\n"); TIMETABLEQ_FOREACH_TABLE(p, &timetablequeue_head, 0, timetablelist) { printf("p = %p\n", p); } p = malloc(sizeof(*p)); TIMETABLEQ_INSERT_HEAD(&timetablequeue_head, 0, p, timetablelist); printf("=== add to table top: %p\n", p); printf("=== table top\n"); TIMETABLEQ_FOREACH_TABLE(p, &timetablequeue_head, 0, timetablelist) { printf("p = %p\n", p); } return 0; }