gqueue.inc 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. {*
  2. * gqueue.inc
  3. *
  4. * depends on glist.inc
  5. *}
  6. type
  7. PGQueue = ^TGQueue;
  8. TGQueue = record
  9. head : PGList;
  10. tail : PGList;
  11. length : guint;
  12. end;
  13. { Queues }
  14. function g_queue_new:PGQueue;cdecl;external gliblib name 'g_queue_new';
  15. procedure g_queue_free(queue:PGQueue);cdecl;external gliblib name 'g_queue_free';
  16. procedure g_queue_push_head(queue:PGQueue; data:gpointer);cdecl;external gliblib name 'g_queue_push_head';
  17. procedure g_queue_push_tail(queue:PGQueue; data:gpointer);cdecl;external gliblib name 'g_queue_push_tail';
  18. function g_queue_pop_head(queue:PGQueue):gpointer;cdecl;external gliblib name 'g_queue_pop_head';
  19. function g_queue_pop_tail(queue:PGQueue):gpointer;cdecl;external gliblib name 'g_queue_pop_tail';
  20. function g_queue_is_empty(queue:PGQueue):gboolean;cdecl;external gliblib name 'g_queue_is_empty';
  21. function g_queue_peek_head(queue:PGQueue):gpointer;cdecl;external gliblib name 'g_queue_peek_head';
  22. function g_queue_peek_tail(queue:PGQueue):gpointer;cdecl;external gliblib name 'g_queue_peek_tail';
  23. procedure g_queue_push_head_link(queue:PGQueue; link:PGList);cdecl;external gliblib name 'g_queue_push_head_link';
  24. procedure g_queue_push_tail_link(queue:PGQueue; link:PGList);cdecl;external gliblib name 'g_queue_push_tail_link';
  25. function g_queue_pop_head_link(queue:PGQueue):PGList;cdecl;external gliblib name 'g_queue_pop_head_link';
  26. function g_queue_pop_tail_link(queue:PGQueue):PGList;cdecl;external gliblib name 'g_queue_pop_tail_link';