1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
#include <glib.h>
#if GLIB_MAJOR_VERSION == 1 && GLIB_MINOR_VERSION < 3
typedef struct _GQueue GQueue;
typedef struct _GTrashStack GTrashStack;
struct _GTrashStack
{
GTrashStack *next;
};
/* Trash Stacks
* elements need to be >= sizeof (gpointer)
*/
void g_trash_stack_push (GTrashStack **stack_p,
gpointer data_p);
gpointer g_trash_stack_pop (GTrashStack **stack_p);
gpointer g_trash_stack_peek (GTrashStack **stack_p);
guint g_trash_stack_height (GTrashStack **stack_p);
struct _GQueue
{
GList *head;
GList *tail;
guint length;
};
/* Queues
*/
GQueue* g_queue_create (void);
void g_queue_free (GQueue *queue);
void g_queue_push_head (GQueue *queue,
gpointer data);
void g_queue_push_tail (GQueue *queue,
gpointer data);
gpointer g_queue_pop_head (GQueue *queue);
gpointer g_queue_pop_tail (GQueue *queue);
gboolean g_queue_is_empty (GQueue *queue);
gpointer g_queue_peek_head (GQueue *queue);
gpointer g_queue_peek_tail (GQueue *queue);
void g_queue_push_head_link (GQueue *queue,
GList *link);
void g_queue_push_tail_link (GQueue *queue,
GList *link);
GList* g_queue_pop_head_link (GQueue *queue);
GList* g_queue_pop_tail_link (GQueue *queue);
#endif /* GLIB_VERSION < 1.3 */
|