<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >First In First Out heaps</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="GTS Library Reference Manual" HREF="book1.html"><LINK REL="UP" TITLE="Basic Macros, functions and data structures" HREF="c4.html"><LINK REL="PREVIOUS" TITLE="Extended binary heaps" HREF="gts-extended-binary-heaps.html"><LINK REL="NEXT" TITLE="Vectors and matrices" HREF="gts-vectors-and-matrices.html"><STYLE TYPE="text/css" >.synopsis, .classsynopsis { background: #eeeeee; border: solid 1px #aaaaaa; padding: 0.5em; } .programlisting { background: #eeeeff; border: solid 1px #aaaaff; padding: 0.5em; } .variablelist { padding: 4px; margin-left: 3em; } .navigation { background: #ffeeee; border: solid 1px #ffaaaa; margin-top: 0.5em; margin-bottom: 0.5em; } .navigation a { color: #770000; } .navigation a:visited { color: #550000; } .navigation .title { font-size: 200%; }</STYLE ></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><TABLE WIDTH="100%" CLASS="navigation" SUMMARY="Navigation header" CELLPADDING="2" CELLSPACING="2" ><TR VALIGN="middle" ><TD ><A ACCESSKEY="p" HREF="gts-extended-binary-heaps.html" ><IMG SRC="left.png" WIDTH="24" HEIGHT="24" BORDER="0" ALT="Prev"></A ></TD ><TD ><A ACCESSKEY="u" HREF="c4.html" ><IMG SRC="up.png" WIDTH="24" HEIGHT="24" BORDER="0" ALT="Up"></A ></TD ><TD ><A ACCESSKEY="h" HREF="book1.html" ><IMG SRC="home.png" WIDTH="24" HEIGHT="24" BORDER="0" ALT="Home"></A ></TD ><TH WIDTH="100%" align="center" >GTS Library Reference Manual</TH ><TD ><A ACCESSKEY="n" HREF="gts-vectors-and-matrices.html" ><IMG SRC="right.png" WIDTH="24" HEIGHT="24" BORDER="0" ALT="Next"></A ></TD ></TR ></TABLE ><H1 ><A NAME="GTS-FIRST-IN-FIRST-OUT-HEAPS" ></A >First In First Out heaps</H1 ><DIV CLASS="REFNAMEDIV" ><A NAME="AEN853" ></A ><H2 >Name</H2 >First In First Out heaps -- </DIV ><DIV CLASS="REFSYNOPSISDIV" ><A NAME="AEN856" ></A ><H2 >Synopsis</H2 ><PRE CLASS="SYNOPSIS" > #include <gts.h> <A HREF="gts-first-in-first-out-heaps.html#GTSFIFO" >GtsFifo</A >; <A HREF="gts-first-in-first-out-heaps.html#GTSFIFO" >GtsFifo</A >* <A HREF="gts-first-in-first-out-heaps.html#GTS-FIFO-NEW" >gts_fifo_new</A > (void); <GTKDOCLINK HREF="VOID" >void</GTKDOCLINK > <A HREF="gts-first-in-first-out-heaps.html#GTS-FIFO-PUSH" >gts_fifo_push</A > (<A HREF="gts-first-in-first-out-heaps.html#GTSFIFO" >GtsFifo</A > *fifo, <GTKDOCLINK HREF="GPOINTER" >gpointer</GTKDOCLINK > data); <GTKDOCLINK HREF="GPOINTER" >gpointer</GTKDOCLINK > <A HREF="gts-first-in-first-out-heaps.html#GTS-FIFO-POP" >gts_fifo_pop</A > (<A HREF="gts-first-in-first-out-heaps.html#GTSFIFO" >GtsFifo</A > *fifo); <GTKDOCLINK HREF="GPOINTER" >gpointer</GTKDOCLINK > <A HREF="gts-first-in-first-out-heaps.html#GTS-FIFO-TOP" >gts_fifo_top</A > (<A HREF="gts-first-in-first-out-heaps.html#GTSFIFO" >GtsFifo</A > *fifo); <GTKDOCLINK HREF="GUINT" >guint</GTKDOCLINK > <A HREF="gts-first-in-first-out-heaps.html#GTS-FIFO-SIZE" >gts_fifo_size</A > (<A HREF="gts-first-in-first-out-heaps.html#GTSFIFO" >GtsFifo</A > *fifo); <GTKDOCLINK HREF="VOID" >void</GTKDOCLINK > <A HREF="gts-first-in-first-out-heaps.html#GTS-FIFO-FOREACH" >gts_fifo_foreach</A > (<A HREF="gts-first-in-first-out-heaps.html#GTSFIFO" >GtsFifo</A > *fifo, <A HREF="gts-surfaces.html#GTSFUNC" >GtsFunc</A > func, <GTKDOCLINK HREF="GPOINTER" >gpointer</GTKDOCLINK > data); <GTKDOCLINK HREF="GBOOLEAN" >gboolean</GTKDOCLINK > <A HREF="gts-first-in-first-out-heaps.html#GTS-FIFO-IS-EMPTY" >gts_fifo_is_empty</A > (<A HREF="gts-first-in-first-out-heaps.html#GTSFIFO" >GtsFifo</A > *fifo); <GTKDOCLINK HREF="VOID" >void</GTKDOCLINK > <A HREF="gts-first-in-first-out-heaps.html#GTS-FIFO-REVERSE" >gts_fifo_reverse</A > (<A HREF="gts-first-in-first-out-heaps.html#GTSFIFO" >GtsFifo</A > *fifo); <GTKDOCLINK HREF="VOID" >void</GTKDOCLINK > <A HREF="gts-first-in-first-out-heaps.html#GTS-FIFO-WRITE" >gts_fifo_write</A > (<A HREF="gts-first-in-first-out-heaps.html#GTSFIFO" >GtsFifo</A > *fifo, <GTKDOCLINK HREF="FILE:CAPS" >FILE</GTKDOCLINK > *fp); <GTKDOCLINK HREF="VOID" >void</GTKDOCLINK > <A HREF="gts-first-in-first-out-heaps.html#GTS-FIFO-DESTROY" >gts_fifo_destroy</A > (<A HREF="gts-first-in-first-out-heaps.html#GTSFIFO" >GtsFifo</A > *fifo);</PRE ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN893" ></A ><H2 >Description</H2 ><P ></P ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN896" ></A ><H2 >Details</H2 ><DIV CLASS="REFSECT2" ><A NAME="AEN898" ></A ><H3 ><A NAME="GTSFIFO" ></A >GtsFifo</H3 ><PRE CLASS="PROGRAMLISTING" >typedef struct _GtsFifo GtsFifo;</PRE ><P ></P ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN905" ></A ><H3 ><A NAME="GTS-FIFO-NEW" ></A >gts_fifo_new ()</H3 ><PRE CLASS="PROGRAMLISTING" ><A HREF="gts-first-in-first-out-heaps.html#GTSFIFO" >GtsFifo</A >* gts_fifo_new (void);</PRE ><P ></P ><P ></P ><P ></P ><TABLE CLASS="variablelist" BORDER="0" CELLSPACING="0" CELLPADDING="4" ><TBODY ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN915"><SPAN STYLE="white-space: nowrap" ><SPAN CLASS="emphasis" ><I CLASS="EMPHASIS" >Returns</I ></SPAN > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a new <A HREF="gts-first-in-first-out-heaps.html#GTSFIFO" ><SPAN CLASS="TYPE" >GtsFifo</SPAN ></A >.</P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN922" ></A ><H3 ><A NAME="GTS-FIFO-PUSH" ></A >gts_fifo_push ()</H3 ><PRE CLASS="PROGRAMLISTING" ><GTKDOCLINK HREF="VOID" >void</GTKDOCLINK > gts_fifo_push (<A HREF="gts-first-in-first-out-heaps.html#GTSFIFO" >GtsFifo</A > *fifo, <GTKDOCLINK HREF="GPOINTER" >gpointer</GTKDOCLINK > data);</PRE ><P >Push <CODE CLASS="PARAMETER" >data</CODE > into <CODE CLASS="PARAMETER" >fifo</CODE >.</P ><P ></P ><P ></P ><TABLE CLASS="variablelist" BORDER="0" CELLSPACING="0" CELLPADDING="4" ><TBODY ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN936"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >fifo</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a <A HREF="gts-first-in-first-out-heaps.html#GTSFIFO" ><SPAN CLASS="TYPE" >GtsFifo</SPAN ></A >.</P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN943"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >data</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > data to add to <CODE CLASS="PARAMETER" >fifo</CODE >.</P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN949" ></A ><H3 ><A NAME="GTS-FIFO-POP" ></A >gts_fifo_pop ()</H3 ><PRE CLASS="PROGRAMLISTING" ><GTKDOCLINK HREF="GPOINTER" >gpointer</GTKDOCLINK > gts_fifo_pop (<A HREF="gts-first-in-first-out-heaps.html#GTSFIFO" >GtsFifo</A > *fifo);</PRE ><P >Removes the first element from <CODE CLASS="PARAMETER" >fifo</CODE >.</P ><P ></P ><P ></P ><TABLE CLASS="variablelist" BORDER="0" CELLSPACING="0" CELLPADDING="4" ><TBODY ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN961"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >fifo</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a <A HREF="gts-first-in-first-out-heaps.html#GTSFIFO" ><SPAN CLASS="TYPE" >GtsFifo</SPAN ></A >.</P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN968"><SPAN STYLE="white-space: nowrap" ><SPAN CLASS="emphasis" ><I CLASS="EMPHASIS" >Returns</I ></SPAN > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > the first element in <CODE CLASS="PARAMETER" >fifo</CODE > or <TT CLASS="LITERAL" >NULL</TT > if <CODE CLASS="PARAMETER" >fifo</CODE > is empty.</P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN976" ></A ><H3 ><A NAME="GTS-FIFO-TOP" ></A >gts_fifo_top ()</H3 ><PRE CLASS="PROGRAMLISTING" ><GTKDOCLINK HREF="GPOINTER" >gpointer</GTKDOCLINK > gts_fifo_top (<A HREF="gts-first-in-first-out-heaps.html#GTSFIFO" >GtsFifo</A > *fifo);</PRE ><P ></P ><P ></P ><P ></P ><TABLE CLASS="variablelist" BORDER="0" CELLSPACING="0" CELLPADDING="4" ><TBODY ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN987"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >fifo</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a <A HREF="gts-first-in-first-out-heaps.html#GTSFIFO" ><SPAN CLASS="TYPE" >GtsFifo</SPAN ></A >.</P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN994"><SPAN STYLE="white-space: nowrap" ><SPAN CLASS="emphasis" ><I CLASS="EMPHASIS" >Returns</I ></SPAN > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > the first element in <CODE CLASS="PARAMETER" >fifo</CODE > or <TT CLASS="LITERAL" >NULL</TT > if <CODE CLASS="PARAMETER" >fifo</CODE > is empty.</P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN1002" ></A ><H3 ><A NAME="GTS-FIFO-SIZE" ></A >gts_fifo_size ()</H3 ><PRE CLASS="PROGRAMLISTING" ><GTKDOCLINK HREF="GUINT" >guint</GTKDOCLINK > gts_fifo_size (<A HREF="gts-first-in-first-out-heaps.html#GTSFIFO" >GtsFifo</A > *fifo);</PRE ><P ></P ><P ></P ><P ></P ><TABLE CLASS="variablelist" BORDER="0" CELLSPACING="0" CELLPADDING="4" ><TBODY ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN1013"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >fifo</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a <A HREF="gts-first-in-first-out-heaps.html#GTSFIFO" ><SPAN CLASS="TYPE" >GtsFifo</SPAN ></A >.</P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN1020"><SPAN STYLE="white-space: nowrap" ><SPAN CLASS="emphasis" ><I CLASS="EMPHASIS" >Returns</I ></SPAN > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > the number of elements in <CODE CLASS="PARAMETER" >fifo</CODE >.</P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN1026" ></A ><H3 ><A NAME="GTS-FIFO-FOREACH" ></A >gts_fifo_foreach ()</H3 ><PRE CLASS="PROGRAMLISTING" ><GTKDOCLINK HREF="VOID" >void</GTKDOCLINK > gts_fifo_foreach (<A HREF="gts-first-in-first-out-heaps.html#GTSFIFO" >GtsFifo</A > *fifo, <A HREF="gts-surfaces.html#GTSFUNC" >GtsFunc</A > func, <GTKDOCLINK HREF="GPOINTER" >gpointer</GTKDOCLINK > data);</PRE ><P >Calls <CODE CLASS="PARAMETER" >func</CODE > in order for each item in <CODE CLASS="PARAMETER" >fifo</CODE >, passing <CODE CLASS="PARAMETER" >data</CODE >.</P ><P ></P ><P ></P ><TABLE CLASS="variablelist" BORDER="0" CELLSPACING="0" CELLPADDING="4" ><TBODY ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN1042"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >fifo</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a <A HREF="gts-first-in-first-out-heaps.html#GTSFIFO" ><SPAN CLASS="TYPE" >GtsFifo</SPAN ></A >.</P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN1049"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >func</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a <A HREF="gts-surfaces.html#GTSFUNC" ><SPAN CLASS="TYPE" >GtsFunc</SPAN ></A >.</P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN1056"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >data</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > user data to be passed to <CODE CLASS="PARAMETER" >func</CODE >.</P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN1062" ></A ><H3 ><A NAME="GTS-FIFO-IS-EMPTY" ></A >gts_fifo_is_empty ()</H3 ><PRE CLASS="PROGRAMLISTING" ><GTKDOCLINK HREF="GBOOLEAN" >gboolean</GTKDOCLINK > gts_fifo_is_empty (<A HREF="gts-first-in-first-out-heaps.html#GTSFIFO" >GtsFifo</A > *fifo);</PRE ><P ></P ><P ></P ><P ></P ><TABLE CLASS="variablelist" BORDER="0" CELLSPACING="0" CELLPADDING="4" ><TBODY ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN1073"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >fifo</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a <A HREF="gts-first-in-first-out-heaps.html#GTSFIFO" ><SPAN CLASS="TYPE" >GtsFifo</SPAN ></A >.</P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN1080"><SPAN STYLE="white-space: nowrap" ><SPAN CLASS="emphasis" ><I CLASS="EMPHASIS" >Returns</I ></SPAN > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > <TT CLASS="LITERAL" >TRUE</TT > if <CODE CLASS="PARAMETER" >fifo</CODE > is empty, <TT CLASS="LITERAL" >FALSE</TT > otherwise.</P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN1088" ></A ><H3 ><A NAME="GTS-FIFO-REVERSE" ></A >gts_fifo_reverse ()</H3 ><PRE CLASS="PROGRAMLISTING" ><GTKDOCLINK HREF="VOID" >void</GTKDOCLINK > gts_fifo_reverse (<A HREF="gts-first-in-first-out-heaps.html#GTSFIFO" >GtsFifo</A > *fifo);</PRE ><P >Reverses the order of elements in <CODE CLASS="PARAMETER" >fifo</CODE >.</P ><P ></P ><P ></P ><TABLE CLASS="variablelist" BORDER="0" CELLSPACING="0" CELLPADDING="4" ><TBODY ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN1100"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >fifo</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a <A HREF="gts-first-in-first-out-heaps.html#GTSFIFO" ><SPAN CLASS="TYPE" >GtsFifo</SPAN ></A >.</P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN1107" ></A ><H3 ><A NAME="GTS-FIFO-WRITE" ></A >gts_fifo_write ()</H3 ><PRE CLASS="PROGRAMLISTING" ><GTKDOCLINK HREF="VOID" >void</GTKDOCLINK > gts_fifo_write (<A HREF="gts-first-in-first-out-heaps.html#GTSFIFO" >GtsFifo</A > *fifo, <GTKDOCLINK HREF="FILE:CAPS" >FILE</GTKDOCLINK > *fp);</PRE ><P >Writes the content of <CODE CLASS="PARAMETER" >fifo</CODE > in <CODE CLASS="PARAMETER" >fp</CODE >.</P ><P ></P ><P ></P ><TABLE CLASS="variablelist" BORDER="0" CELLSPACING="0" CELLPADDING="4" ><TBODY ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN1121"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >fifo</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a <A HREF="gts-first-in-first-out-heaps.html#GTSFIFO" ><SPAN CLASS="TYPE" >GtsFifo</SPAN ></A >.</P ></TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN1128"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >fp</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a file pointer.</P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN1133" ></A ><H3 ><A NAME="GTS-FIFO-DESTROY" ></A >gts_fifo_destroy ()</H3 ><PRE CLASS="PROGRAMLISTING" ><GTKDOCLINK HREF="VOID" >void</GTKDOCLINK > gts_fifo_destroy (<A HREF="gts-first-in-first-out-heaps.html#GTSFIFO" >GtsFifo</A > *fifo);</PRE ><P >Frees all the memory allocated for <CODE CLASS="PARAMETER" >fifo</CODE >.</P ><P ></P ><P ></P ><TABLE CLASS="variablelist" BORDER="0" CELLSPACING="0" CELLPADDING="4" ><TBODY ><TR ><TD ALIGN="LEFT" VALIGN="TOP" ><A NAME="AEN1145"><SPAN STYLE="white-space: nowrap" ><CODE CLASS="PARAMETER" >fifo</CODE > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > a <A HREF="gts-first-in-first-out-heaps.html#GTSFIFO" ><SPAN CLASS="TYPE" >GtsFifo</SPAN ></A >.</P ></TD ></TR ></TBODY ></TABLE ></DIV ></DIV ><TABLE CLASS="navigation" WIDTH="100%" SUMMARY="Navigation footer" CELLPADDING="2" CELLSPACING="2" ><TR VALIGN="middle" ><TD ALIGN="left" ><A ACCESSKEY="p" HREF="gts-extended-binary-heaps.html" ><B ><<< Extended binary heaps</B ></A ></TD ><TD ALIGN="right" ><A ACCESSKEY="n" HREF="gts-vectors-and-matrices.html" ><B >Vectors and matrices >>></B ></A ></TD ></TR ></TABLE ></BODY ></HTML >