lite_queue.h 859 B

12345678910111213141516171819202122232425262728
  1. #ifndef LITE_QUEUE_H
  2. #define LITE_QUEUE_H
  3. #include <stdlib.h>
  4. #include <stdarg.h>
  5. typedef struct _lite_queue_t
  6. {
  7. void* lite_queue_array;
  8. void* lite_queue_mutex;
  9. size_t queue_size;
  10. size_t queue_array_size;
  11. size_t front;
  12. size_t rear;
  13. } lite_queue_t;
  14. typedef void (*handle_queue_item_fp_t)(void* queue_item, va_list* params);
  15. lite_queue_t* lite_queue_create(int queue_size, int synchronized);
  16. void lite_queue_destroy(lite_queue_t* _lite_queue);
  17. int lite_queue_insert(lite_queue_t* _lite_queue, void *data);
  18. void* lite_queue_delete(lite_queue_t* _lite_queue);
  19. void* lite_queue_first(lite_queue_t* _lite_queue);
  20. int lite_queue_is_empty(lite_queue_t* _lite_queue);
  21. int lite_queue_is_full(lite_queue_t* _lite_queue);
  22. void lite_queue_iterator(lite_queue_t* _lite_queue, handle_queue_item_fp_t handle_fn, ...);
  23. #endif /* LITE_QUEUE_H */