blob: 8f8d9a461250e69c28b33acfeb737f6efad44031 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>FTGL: FTList.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3.6 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
<h1>FTList.h</h1><a href="FTList_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="preprocessor">#ifndef __FTList__</span>
00002 <span class="preprocessor"></span><span class="preprocessor">#define __FTList__</span>
00003 <span class="preprocessor"></span>
00004 <span class="preprocessor">#include "<a class="code" href="FTGL_8h.html">FTGL.h</a>"</span>
00005
00009 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> FT_LIST_ITEM_TYPE&gt;
<a name="l00010"></a><a class="code" href="classFTList.html">00010</a> <span class="keyword">class </span><a class="code" href="FTGL_8h.html#a3">FTGL_EXPORT</a> FTList
00011 {
00012 <span class="keyword">public</span>:
<a name="l00013"></a><a class="code" href="classFTList.html#w0">00013</a> <span class="keyword">typedef</span> FT_LIST_ITEM_TYPE value_type;
<a name="l00014"></a><a class="code" href="classFTList.html#w1">00014</a> <span class="keyword">typedef</span> value_type&amp; reference;
<a name="l00015"></a><a class="code" href="classFTList.html#w2">00015</a> <span class="keyword">typedef</span> <span class="keyword">const</span> value_type&amp; const_reference;
<a name="l00016"></a><a class="code" href="classFTList.html#w3">00016</a> <span class="keyword">typedef</span> size_t size_type;
00017
<a name="l00021"></a><a class="code" href="classFTList.html#a0">00021</a> FTList()
00022 : listSize(0),
00023 tail(0)
00024 {
00025 tail = NULL;
00026 head = <span class="keyword">new</span> Node;
00027 }
00028
<a name="l00032"></a><a class="code" href="classFTList.html#a1">00032</a> ~FTList()
00033 {
00034 Node* next;
00035
00036 <span class="keywordflow">for</span>( Node *walk = head; walk; walk = next)
00037 {
00038 next = walk-&gt;next;
00039 <span class="keyword">delete</span> walk;
00040 }
00041 }
00042
<a name="l00046"></a><a class="code" href="classFTList.html#a2">00046</a> size_type size()<span class="keyword"> const</span>
00047 <span class="keyword"> </span>{
00048 <span class="keywordflow">return</span> listSize;
00049 }
00050
<a name="l00054"></a><a class="code" href="classFTList.html#a3">00054</a> <span class="keywordtype">void</span> push_back( <span class="keyword">const</span> value_type&amp; item)
00055 {
00056 Node* node = <span class="keyword">new</span> Node( item);
00057
00058 <span class="keywordflow">if</span>( head-&gt;next == NULL)
00059 {
00060 head-&gt;next = node;
00061 }
00062
00063 <span class="keywordflow">if</span>( tail)
00064 {
00065 tail-&gt;next = node;
00066 }
00067 tail = node;
00068 ++listSize;
00069 }
00070
<a name="l00074"></a><a class="code" href="classFTList.html#a4">00074</a> reference front()<span class="keyword"> const</span>
00075 <span class="keyword"> </span>{
00076 <span class="keywordflow">return</span> head-&gt;next-&gt;payload;
00077 }
00078
<a name="l00082"></a><a class="code" href="classFTList.html#a5">00082</a> reference back()<span class="keyword"> const</span>
00083 <span class="keyword"> </span>{
00084 <span class="keywordflow">return</span> tail-&gt;payload;
00085 }
00086
00087 <span class="keyword">private</span>:
00088 <span class="keyword">struct </span>Node
00089 {
00090 Node()
00091 : next(NULL)
00092 {}
00093
00094 Node( <span class="keyword">const</span> value_type&amp; item)
00095 : next(NULL)
00096 {
00097 payload = item;
00098 }
00099
00100 Node* next;
00101
00102 value_type payload;
00103 };
00104
00105 size_type listSize;
00106
00107 Node* head;
00108 Node* tail;
00109 };
00110
00111 <span class="preprocessor">#endif // __FTList__</span>
00112 <span class="preprocessor"></span>
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Sun Dec 5 22:24:06 2004 for FTGL by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0 >
</a>1.3.6 </small></address>
</body>
</html>