#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 */
syntax highlighted by Code2HTML, v. 0.9.1