~ubuntu-branches/ubuntu/vivid/tesseract/vivid

« back to all changes in this revision

Viewing changes to doc/html/a00364.html

  • Committer: Package Import Robot
  • Author(s): Jeff Breidenbach
  • Date: 2014-02-03 11:10:20 UTC
  • mfrom: (1.3.1) (19.1.1 experimental)
  • Revision ID: package-import@ubuntu.com-20140203111020-igquodd7pjlp3uri
Tags: 3.03.01-1
* New upstream release, includes critical fix to PDF rendering
* Complete leptonlib transition (see bug #735509)
* Promote from experimental to unstable

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
2
<html xmlns="http://www.w3.org/1999/xhtml">
 
3
<head>
 
4
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 
5
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
6
<title>tesseract: ELIST Class Reference</title>
 
7
 
 
8
<link href="tabs.css" rel="stylesheet" type="text/css"/>
 
9
<link href="doxygen.css" rel="stylesheet" type="text/css" />
 
10
<link href="navtree.css" rel="stylesheet" type="text/css"/>
 
11
<script type="text/javascript" src="jquery.js"></script>
 
12
<script type="text/javascript" src="resize.js"></script>
 
13
<script type="text/javascript" src="navtree.js"></script>
 
14
<script type="text/javascript">
 
15
  $(document).ready(initResizable);
 
16
</script>
 
17
<link href="search/search.css" rel="stylesheet" type="text/css"/>
 
18
<script type="text/javascript" src="search/search.js"></script>
 
19
<script type="text/javascript">
 
20
  $(document).ready(function() { searchBox.OnSelectItem(0); });
 
21
</script>
 
22
 
 
23
</head>
 
24
<body>
 
25
<div id="top"><!-- do not remove this div! -->
 
26
 
 
27
 
 
28
<div id="titlearea">
 
29
<table cellspacing="0" cellpadding="0">
 
30
 <tbody>
 
31
 <tr style="height: 56px;">
 
32
  
 
33
  
 
34
  <td style="padding-left: 0.5em;">
 
35
   <div id="projectname">tesseract
 
36
   &#160;<span id="projectnumber">3.03</span>
 
37
   </div>
 
38
   
 
39
  </td>
 
40
  
 
41
  
 
42
  
 
43
 </tr>
 
44
 </tbody>
 
45
</table>
 
46
</div>
 
47
 
 
48
<!-- Generated by Doxygen 1.7.6.1 -->
 
49
<script type="text/javascript">
 
50
var searchBox = new SearchBox("searchBox", "search",false,'Search');
 
51
</script>
 
52
  <div id="navrow1" class="tabs">
 
53
    <ul class="tablist">
 
54
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
 
55
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
 
56
      <li><a href="modules.html"><span>Modules</span></a></li>
 
57
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
 
58
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
 
59
      <li><a href="files.html"><span>Files</span></a></li>
 
60
      <li>
 
61
        <div id="MSearchBox" class="MSearchBoxInactive">
 
62
        <span class="left">
 
63
          <img id="MSearchSelect" src="search/mag_sel.png"
 
64
               onmouseover="return searchBox.OnSearchSelectShow()"
 
65
               onmouseout="return searchBox.OnSearchSelectHide()"
 
66
               alt=""/>
 
67
          <input type="text" id="MSearchField" value="Search" accesskey="S"
 
68
               onfocus="searchBox.OnSearchFieldFocus(true)" 
 
69
               onblur="searchBox.OnSearchFieldFocus(false)" 
 
70
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
 
71
          </span><span class="right">
 
72
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
 
73
          </span>
 
74
        </div>
 
75
      </li>
 
76
    </ul>
 
77
  </div>
 
78
  <div id="navrow2" class="tabs2">
 
79
    <ul class="tablist">
 
80
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
 
81
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
 
82
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
 
83
    </ul>
 
84
  </div>
 
85
</div>
 
86
<div id="side-nav" class="ui-resizable side-nav-resizable">
 
87
  <div id="nav-tree">
 
88
    <div id="nav-tree-contents">
 
89
    </div>
 
90
  </div>
 
91
  <div id="splitbar" style="-moz-user-select:none;" 
 
92
       class="ui-resizable-handle">
 
93
  </div>
 
94
</div>
 
95
<script type="text/javascript">
 
96
  initNavTree('a00364.html','');
 
97
</script>
 
98
<div id="doc-content">
 
99
<div class="header">
 
100
  <div class="summary">
 
101
<a href="#pub-methods">Public Member Functions</a> &#124;
 
102
<a href="#friends">Friends</a>  </div>
 
103
  <div class="headertitle">
 
104
<div class="title">ELIST Class Reference</div>  </div>
 
105
</div><!--header-->
 
106
<div class="contents">
 
107
<!-- doxytag: class="ELIST" -->
 
108
<p><code>#include &lt;<a class="el" href="a00819_source.html">elst.h</a>&gt;</code></p>
 
109
 
 
110
<p><a href="a01564.html">List of all members.</a></p>
 
111
<table class="memberdecls">
 
112
<tr><td colspan="2"><h2><a name="pub-methods"></a>
 
113
Public Member Functions</h2></td></tr>
 
114
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00364.html#ae37e11e80a427b1ea5c43321d7f8af56">ELIST</a> ()</td></tr>
 
115
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00364.html#a9e3110796c3e5189fa846b44122176ac">internal_clear</a> (void(*zapper)(<a class="el" href="a00369.html">ELIST_LINK</a> *))</td></tr>
 
116
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00364.html#a7788b6c4e4b9623e43c58fe3b2976edd">empty</a> () const </td></tr>
 
117
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00364.html#abbe9f968d190bf5bf261e13af7bfc543">singleton</a> () const </td></tr>
 
118
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00364.html#a8bd9cf7457dd6a17a68860b77abd379a">shallow_copy</a> (<a class="el" href="a00364.html">ELIST</a> *from_list)</td></tr>
 
119
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00364.html#a575eb2690055500a718e5ea8c6740de3">internal_deep_copy</a> (<a class="el" href="a00369.html">ELIST_LINK</a> *(*copier)(<a class="el" href="a00369.html">ELIST_LINK</a> *), const <a class="el" href="a00364.html">ELIST</a> *list)</td></tr>
 
120
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00364.html#aec667b2b89d45695712f041bc3e09198">assign_to_sublist</a> (<a class="el" href="a00368.html">ELIST_ITERATOR</a> *start_it, <a class="el" href="a00368.html">ELIST_ITERATOR</a> *end_it)</td></tr>
 
121
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00831.html#aba1f582fd0168f3ff9225d8c90fa9eb8">inT32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00364.html#a571dfff8a1c0cef0f0120708a1b32185">length</a> () const </td></tr>
 
122
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00364.html#a82eb75fa241c49b6ccdc92d96f810ece">sort</a> (int comparator(const void *, const void *))</td></tr>
 
123
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00369.html">ELIST_LINK</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00364.html#a01af0288f3fadb4d222a03f3fe7c6811">add_sorted_and_find</a> (int comparator(const void *, const void *), bool unique, <a class="el" href="a00369.html">ELIST_LINK</a> *new_link)</td></tr>
 
124
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00364.html#af61dc70c4e992e1c05c843c0d541db80">add_sorted</a> (int comparator(const void *, const void *), bool unique, <a class="el" href="a00369.html">ELIST_LINK</a> *new_link)</td></tr>
 
125
<tr><td colspan="2"><h2><a name="friends"></a>
 
126
Friends</h2></td></tr>
 
127
<tr><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00364.html#a4aec179a718fd9e202aa2075bfaa5709">ELIST_ITERATOR</a></td></tr>
 
128
</table>
 
129
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 
130
<div class="textblock">
 
131
<p>Definition at line <a class="el" href="a00819_source.html#l00114">114</a> of file <a class="el" href="a00819_source.html">elst.h</a>.</p>
 
132
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
 
133
<a class="anchor" id="ae37e11e80a427b1ea5c43321d7f8af56"></a><!-- doxytag: member="ELIST::ELIST" ref="ae37e11e80a427b1ea5c43321d7f8af56" args="()" -->
 
134
<div class="memitem">
 
135
<div class="memproto">
 
136
      <table class="memname">
 
137
        <tr>
 
138
          <td class="memname"><a class="el" href="a00364.html#ae37e11e80a427b1ea5c43321d7f8af56">ELIST::ELIST</a> </td>
 
139
          <td>(</td>
 
140
          <td class="paramname"></td><td>)</td>
 
141
          <td><code> [inline]</code></td>
 
142
        </tr>
 
143
      </table>
 
144
</div>
 
145
<div class="memdoc">
 
146
 
 
147
<p>Definition at line <a class="el" href="a00819_source.html#l00125">125</a> of file <a class="el" href="a00819_source.html">elst.h</a>.</p>
 
148
<div class="fragment"><pre class="fragment">            {  <span class="comment">//constructor</span>
 
149
      last = NULL;
 
150
    }
 
151
</pre></div>
 
152
</div>
 
153
</div>
 
154
<hr/><h2>Member Function Documentation</h2>
 
155
<a class="anchor" id="af61dc70c4e992e1c05c843c0d541db80"></a><!-- doxytag: member="ELIST::add_sorted" ref="af61dc70c4e992e1c05c843c0d541db80" args="(int comparator(const void *, const void *), bool unique, ELIST_LINK *new_link)" -->
 
156
<div class="memitem">
 
157
<div class="memproto">
 
158
      <table class="memname">
 
159
        <tr>
 
160
          <td class="memname">bool <a class="el" href="a00364.html#af61dc70c4e992e1c05c843c0d541db80">ELIST::add_sorted</a> </td>
 
161
          <td>(</td>
 
162
          <td class="paramtype">int &#160;</td>
 
163
          <td class="paramname"><em>comparator</em>const void *, const void *, </td>
 
164
        </tr>
 
165
        <tr>
 
166
          <td class="paramkey"></td>
 
167
          <td></td>
 
168
          <td class="paramtype">bool&#160;</td>
 
169
          <td class="paramname"><em>unique</em>, </td>
 
170
        </tr>
 
171
        <tr>
 
172
          <td class="paramkey"></td>
 
173
          <td></td>
 
174
          <td class="paramtype"><a class="el" href="a00369.html">ELIST_LINK</a> *&#160;</td>
 
175
          <td class="paramname"><em>new_link</em>&#160;</td>
 
176
        </tr>
 
177
        <tr>
 
178
          <td></td>
 
179
          <td>)</td>
 
180
          <td></td><td><code> [inline]</code></td>
 
181
        </tr>
 
182
      </table>
 
183
</div>
 
184
<div class="memdoc">
 
185
 
 
186
<p>Definition at line <a class="el" href="a00819_source.html#l00175">175</a> of file <a class="el" href="a00819_source.html">elst.h</a>.</p>
 
187
<div class="fragment"><pre class="fragment">                                                       {
 
188
      <span class="keywordflow">return</span> (<a class="code" href="a00364.html#a01af0288f3fadb4d222a03f3fe7c6811">add_sorted_and_find</a>(comparator, unique, new_link) == new_link);
 
189
    }
 
190
</pre></div>
 
191
</div>
 
192
</div>
 
193
<a class="anchor" id="a01af0288f3fadb4d222a03f3fe7c6811"></a><!-- doxytag: member="ELIST::add_sorted_and_find" ref="a01af0288f3fadb4d222a03f3fe7c6811" args="(int comparator(const void *, const void *), bool unique, ELIST_LINK *new_link)" -->
 
194
<div class="memitem">
 
195
<div class="memproto">
 
196
      <table class="memname">
 
197
        <tr>
 
198
          <td class="memname"><a class="el" href="a00369.html">ELIST_LINK</a> * <a class="el" href="a00364.html#a01af0288f3fadb4d222a03f3fe7c6811">ELIST::add_sorted_and_find</a> </td>
 
199
          <td>(</td>
 
200
          <td class="paramtype">int &#160;</td>
 
201
          <td class="paramname"><em>comparator</em>const void *, const void *, </td>
 
202
        </tr>
 
203
        <tr>
 
204
          <td class="paramkey"></td>
 
205
          <td></td>
 
206
          <td class="paramtype">bool&#160;</td>
 
207
          <td class="paramname"><em>unique</em>, </td>
 
208
        </tr>
 
209
        <tr>
 
210
          <td class="paramkey"></td>
 
211
          <td></td>
 
212
          <td class="paramtype"><a class="el" href="a00369.html">ELIST_LINK</a> *&#160;</td>
 
213
          <td class="paramname"><em>new_link</em>&#160;</td>
 
214
        </tr>
 
215
        <tr>
 
216
          <td></td>
 
217
          <td>)</td>
 
218
          <td></td><td></td>
 
219
        </tr>
 
220
      </table>
 
221
</div>
 
222
<div class="memdoc">
 
223
 
 
224
<p>Definition at line <a class="el" href="a00818_source.html#l00172">172</a> of file <a class="el" href="a00818_source.html">elst.cpp</a>.</p>
 
225
<div class="fragment"><pre class="fragment">                                       {
 
226
  <span class="comment">// Check for adding at the end.</span>
 
227
  <span class="keywordflow">if</span> (last == NULL || comparator(&amp;last, &amp;new_link) &lt; 0) {
 
228
    <span class="keywordflow">if</span> (last == NULL) {
 
229
      new_link-&gt;next = new_link;
 
230
    } <span class="keywordflow">else</span> {
 
231
      new_link-&gt;next = last-&gt;next;
 
232
      last-&gt;next = new_link;
 
233
    }
 
234
    last = new_link;
 
235
  } <span class="keywordflow">else</span> {
 
236
    <span class="comment">// Need to use an iterator.</span>
 
237
    <a class="code" href="a00368.html">ELIST_ITERATOR</a> it(<span class="keyword">this</span>);
 
238
    <span class="keywordflow">for</span> (it.mark_cycle_pt(); !it.cycled_list(); it.forward()) {
 
239
      <a class="code" href="a00369.html">ELIST_LINK</a>* link = it.data();
 
240
      <span class="keywordtype">int</span> compare = comparator(&amp;link, &amp;new_link);
 
241
      <span class="keywordflow">if</span> (compare &gt; 0) {
 
242
        <span class="keywordflow">break</span>;
 
243
      } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (unique &amp;&amp; compare == 0) {
 
244
        <span class="keywordflow">return</span> link;
 
245
      }
 
246
    }
 
247
    <span class="keywordflow">if</span> (it.cycled_list())
 
248
      it.add_to_end(new_link);
 
249
    <span class="keywordflow">else</span>
 
250
      it.add_before_then_move(new_link);
 
251
  }
 
252
  <span class="keywordflow">return</span> new_link;
 
253
}
 
254
</pre></div>
 
255
</div>
 
256
</div>
 
257
<a class="anchor" id="aec667b2b89d45695712f041bc3e09198"></a><!-- doxytag: member="ELIST::assign_to_sublist" ref="aec667b2b89d45695712f041bc3e09198" args="(ELIST_ITERATOR *start_it, ELIST_ITERATOR *end_it)" -->
 
258
<div class="memitem">
 
259
<div class="memproto">
 
260
      <table class="memname">
 
261
        <tr>
 
262
          <td class="memname">void <a class="el" href="a00364.html#aec667b2b89d45695712f041bc3e09198">ELIST::assign_to_sublist</a> </td>
 
263
          <td>(</td>
 
264
          <td class="paramtype"><a class="el" href="a00368.html">ELIST_ITERATOR</a> *&#160;</td>
 
265
          <td class="paramname"><em>start_it</em>, </td>
 
266
        </tr>
 
267
        <tr>
 
268
          <td class="paramkey"></td>
 
269
          <td></td>
 
270
          <td class="paramtype"><a class="el" href="a00368.html">ELIST_ITERATOR</a> *&#160;</td>
 
271
          <td class="paramname"><em>end_it</em>&#160;</td>
 
272
        </tr>
 
273
        <tr>
 
274
          <td></td>
 
275
          <td>)</td>
 
276
          <td></td><td></td>
 
277
        </tr>
 
278
      </table>
 
279
</div>
 
280
<div class="memdoc">
 
281
 
 
282
<p>Definition at line <a class="el" href="a00818_source.html#l00077">77</a> of file <a class="el" href="a00818_source.html">elst.cpp</a>.</p>
 
283
<div class="fragment"><pre class="fragment">                                                      {  <span class="comment">//from list end</span>
 
284
  <span class="keyword">const</span> <a class="code" href="a00372.html">ERRCODE</a> LIST_NOT_EMPTY =
 
285
    <span class="stringliteral">&quot;Destination list must be empty before extracting a sublist&quot;</span>;
 
286
 
 
287
<span class="preprocessor">  #ifndef NDEBUG</span>
 
288
<span class="preprocessor"></span>  <span class="keywordflow">if</span> (!<span class="keyword">this</span>)
 
289
    NULL_OBJECT.<a class="code" href="a00372.html#abc4cc64aad0ddb74c02523b69c95a1c1">error</a> (<span class="stringliteral">&quot;ELIST::assign_to_sublist&quot;</span>, <a class="code" href="a00823.html#a8a3a2e51383909b357fcdf8eda803637a781ad2788df9e25c59a70894c7832096">ABORT</a>, NULL);
 
290
<span class="preprocessor">  #endif</span>
 
291
<span class="preprocessor"></span>
 
292
  <span class="keywordflow">if</span> (!<a class="code" href="a00364.html#a7788b6c4e4b9623e43c58fe3b2976edd">empty</a> ())
 
293
    LIST_NOT_EMPTY.<a class="code" href="a00372.html#abc4cc64aad0ddb74c02523b69c95a1c1">error</a> (<span class="stringliteral">&quot;ELIST.assign_to_sublist&quot;</span>, <a class="code" href="a00823.html#a8a3a2e51383909b357fcdf8eda803637a781ad2788df9e25c59a70894c7832096">ABORT</a>, NULL);
 
294
 
 
295
  last = start_it-&gt;extract_sublist (end_it);
 
296
}
 
297
</pre></div>
 
298
</div>
 
299
</div>
 
300
<a class="anchor" id="a7788b6c4e4b9623e43c58fe3b2976edd"></a><!-- doxytag: member="ELIST::empty" ref="a7788b6c4e4b9623e43c58fe3b2976edd" args="() const " -->
 
301
<div class="memitem">
 
302
<div class="memproto">
 
303
      <table class="memname">
 
304
        <tr>
 
305
          <td class="memname">bool <a class="el" href="a00364.html#a7788b6c4e4b9623e43c58fe3b2976edd">ELIST::empty</a> </td>
 
306
          <td>(</td>
 
307
          <td class="paramname"></td><td>)</td>
 
308
          <td> const<code> [inline]</code></td>
 
309
        </tr>
 
310
      </table>
 
311
</div>
 
312
<div class="memdoc">
 
313
 
 
314
<p>Definition at line <a class="el" href="a00819_source.html#l00133">133</a> of file <a class="el" href="a00819_source.html">elst.h</a>.</p>
 
315
<div class="fragment"><pre class="fragment">                       {  <span class="comment">//is list empty?</span>
 
316
      <span class="keywordflow">return</span> !last;
 
317
    }
 
318
</pre></div>
 
319
</div>
 
320
</div>
 
321
<a class="anchor" id="a9e3110796c3e5189fa846b44122176ac"></a><!-- doxytag: member="ELIST::internal_clear" ref="a9e3110796c3e5189fa846b44122176ac" args="(void(*zapper)(ELIST_LINK *))" -->
 
322
<div class="memitem">
 
323
<div class="memproto">
 
324
      <table class="memname">
 
325
        <tr>
 
326
          <td class="memname">void <a class="el" href="a00364.html#a9e3110796c3e5189fa846b44122176ac">ELIST::internal_clear</a> </td>
 
327
          <td>(</td>
 
328
          <td class="paramtype">void(*)(<a class="el" href="a00369.html">ELIST_LINK</a> *)&#160;</td>
 
329
          <td class="paramname"><em>zapper</em></td><td>)</td>
 
330
          <td></td>
 
331
        </tr>
 
332
      </table>
 
333
</div>
 
334
<div class="memdoc">
 
335
 
 
336
<p>Definition at line <a class="el" href="a00818_source.html#l00041">41</a> of file <a class="el" href="a00818_source.html">elst.cpp</a>.</p>
 
337
<div class="fragment"><pre class="fragment">                               {
 
338
                                 <span class="comment">//ptr to zapper functn</span>
 
339
  <a class="code" href="a00369.html">ELIST_LINK</a> *ptr;
 
340
  <a class="code" href="a00369.html">ELIST_LINK</a> *next;
 
341
 
 
342
<span class="preprocessor">  #ifndef NDEBUG</span>
 
343
<span class="preprocessor"></span>  <span class="keywordflow">if</span> (!<span class="keyword">this</span>)
 
344
    NULL_OBJECT.error (<span class="stringliteral">&quot;ELIST::internal_clear&quot;</span>, <a class="code" href="a00823.html#a8a3a2e51383909b357fcdf8eda803637a781ad2788df9e25c59a70894c7832096">ABORT</a>, NULL);
 
345
<span class="preprocessor">  #endif</span>
 
346
<span class="preprocessor"></span>
 
347
  <span class="keywordflow">if</span> (!<a class="code" href="a00364.html#a7788b6c4e4b9623e43c58fe3b2976edd">empty</a> ()) {
 
348
    ptr = last-&gt;next;            <span class="comment">//set to first</span>
 
349
    last-&gt;next = NULL;           <span class="comment">//break circle</span>
 
350
    last = NULL;                 <span class="comment">//set list empty</span>
 
351
    <span class="keywordflow">while</span> (ptr) {
 
352
      next = ptr-&gt;next;
 
353
      zapper(ptr);
 
354
      ptr = next;
 
355
    }
 
356
  }
 
357
}
 
358
</pre></div>
 
359
</div>
 
360
</div>
 
361
<a class="anchor" id="a575eb2690055500a718e5ea8c6740de3"></a><!-- doxytag: member="ELIST::internal_deep_copy" ref="a575eb2690055500a718e5ea8c6740de3" args="(ELIST_LINK *(*copier)(ELIST_LINK *), const ELIST *list)" -->
 
362
<div class="memitem">
 
363
<div class="memproto">
 
364
      <table class="memname">
 
365
        <tr>
 
366
          <td class="memname">void <a class="el" href="a00364.html#a575eb2690055500a718e5ea8c6740de3">ELIST::internal_deep_copy</a> </td>
 
367
          <td>(</td>
 
368
          <td class="paramtype"><a class="el" href="a00369.html">ELIST_LINK</a> *(*)(<a class="el" href="a00369.html">ELIST_LINK</a> *)&#160;</td>
 
369
          <td class="paramname"><em>copier</em>, </td>
 
370
        </tr>
 
371
        <tr>
 
372
          <td class="paramkey"></td>
 
373
          <td></td>
 
374
          <td class="paramtype">const <a class="el" href="a00364.html">ELIST</a> *&#160;</td>
 
375
          <td class="paramname"><em>list</em>&#160;</td>
 
376
        </tr>
 
377
        <tr>
 
378
          <td></td>
 
379
          <td>)</td>
 
380
          <td></td><td></td>
 
381
        </tr>
 
382
      </table>
 
383
</div>
 
384
<div class="memdoc">
 
385
 
 
386
</div>
 
387
</div>
 
388
<a class="anchor" id="a571dfff8a1c0cef0f0120708a1b32185"></a><!-- doxytag: member="ELIST::length" ref="a571dfff8a1c0cef0f0120708a1b32185" args="() const " -->
 
389
<div class="memitem">
 
390
<div class="memproto">
 
391
      <table class="memname">
 
392
        <tr>
 
393
          <td class="memname"><a class="el" href="a00831.html#aba1f582fd0168f3ff9225d8c90fa9eb8">inT32</a> <a class="el" href="a00364.html#a571dfff8a1c0cef0f0120708a1b32185">ELIST::length</a> </td>
 
394
          <td>(</td>
 
395
          <td class="paramname"></td><td>)</td>
 
396
          <td> const</td>
 
397
        </tr>
 
398
      </table>
 
399
</div>
 
400
<div class="memdoc">
 
401
 
 
402
<p>Definition at line <a class="el" href="a00818_source.html#l00101">101</a> of file <a class="el" href="a00818_source.html">elst.cpp</a>.</p>
 
403
<div class="fragment"><pre class="fragment">                          {  <span class="comment">// count elements</span>
 
404
  <a class="code" href="a00368.html">ELIST_ITERATOR</a> it(const_cast&lt;ELIST*&gt;(<span class="keyword">this</span>));
 
405
  <a class="code" href="a00831.html#aba1f582fd0168f3ff9225d8c90fa9eb8">inT32</a> <a class="code" href="a01042.html#acd4ea858d7133e40518e0832ff9d94b2">count</a> = 0;
 
406
 
 
407
<span class="preprocessor">  #ifndef NDEBUG</span>
 
408
<span class="preprocessor"></span>  <span class="keywordflow">if</span> (!<span class="keyword">this</span>)
 
409
    NULL_OBJECT.error (<span class="stringliteral">&quot;ELIST::length&quot;</span>, <a class="code" href="a00823.html#a8a3a2e51383909b357fcdf8eda803637a781ad2788df9e25c59a70894c7832096">ABORT</a>, NULL);
 
410
<span class="preprocessor">  #endif</span>
 
411
<span class="preprocessor"></span>
 
412
  <span class="keywordflow">for</span> (it.mark_cycle_pt (); !it.cycled_list (); it.forward ())
 
413
    count++;
 
414
  <span class="keywordflow">return</span> <a class="code" href="a01042.html#acd4ea858d7133e40518e0832ff9d94b2">count</a>;
 
415
}
 
416
</pre></div>
 
417
</div>
 
418
</div>
 
419
<a class="anchor" id="a8bd9cf7457dd6a17a68860b77abd379a"></a><!-- doxytag: member="ELIST::shallow_copy" ref="a8bd9cf7457dd6a17a68860b77abd379a" args="(ELIST *from_list)" -->
 
420
<div class="memitem">
 
421
<div class="memproto">
 
422
      <table class="memname">
 
423
        <tr>
 
424
          <td class="memname">void <a class="el" href="a00364.html#a8bd9cf7457dd6a17a68860b77abd379a">ELIST::shallow_copy</a> </td>
 
425
          <td>(</td>
 
426
          <td class="paramtype"><a class="el" href="a00364.html">ELIST</a> *&#160;</td>
 
427
          <td class="paramname"><em>from_list</em></td><td>)</td>
 
428
          <td><code> [inline]</code></td>
 
429
        </tr>
 
430
      </table>
 
431
</div>
 
432
<div class="memdoc">
 
433
 
 
434
<p>Definition at line <a class="el" href="a00819_source.html#l00141">141</a> of file <a class="el" href="a00819_source.html">elst.h</a>.</p>
 
435
<div class="fragment"><pre class="fragment">                                        {  <span class="comment">//beware destructors!!</span>
 
436
      last = from_list-&gt;last;
 
437
    }
 
438
</pre></div>
 
439
</div>
 
440
</div>
 
441
<a class="anchor" id="abbe9f968d190bf5bf261e13af7bfc543"></a><!-- doxytag: member="ELIST::singleton" ref="abbe9f968d190bf5bf261e13af7bfc543" args="() const " -->
 
442
<div class="memitem">
 
443
<div class="memproto">
 
444
      <table class="memname">
 
445
        <tr>
 
446
          <td class="memname">bool <a class="el" href="a00364.html#abbe9f968d190bf5bf261e13af7bfc543">ELIST::singleton</a> </td>
 
447
          <td>(</td>
 
448
          <td class="paramname"></td><td>)</td>
 
449
          <td> const<code> [inline]</code></td>
 
450
        </tr>
 
451
      </table>
 
452
</div>
 
453
<div class="memdoc">
 
454
 
 
455
<p>Definition at line <a class="el" href="a00819_source.html#l00137">137</a> of file <a class="el" href="a00819_source.html">elst.h</a>.</p>
 
456
<div class="fragment"><pre class="fragment">                           {
 
457
      <span class="keywordflow">return</span> last ? (last == last-&gt;next) : <span class="keyword">false</span>;
 
458
    }
 
459
</pre></div>
 
460
</div>
 
461
</div>
 
462
<a class="anchor" id="a82eb75fa241c49b6ccdc92d96f810ece"></a><!-- doxytag: member="ELIST::sort" ref="a82eb75fa241c49b6ccdc92d96f810ece" args="(int comparator(const void *, const void *))" -->
 
463
<div class="memitem">
 
464
<div class="memproto">
 
465
      <table class="memname">
 
466
        <tr>
 
467
          <td class="memname">void <a class="el" href="a00364.html#a82eb75fa241c49b6ccdc92d96f810ece">ELIST::sort</a> </td>
 
468
          <td>(</td>
 
469
          <td class="paramtype">int &#160;</td>
 
470
          <td class="paramname"><em>comparator</em>const void *, const void *</td><td>)</td>
 
471
          <td></td>
 
472
        </tr>
 
473
      </table>
 
474
</div>
 
475
<div class="memdoc">
 
476
 
 
477
<p>Definition at line <a class="el" href="a00818_source.html#l00125">125</a> of file <a class="el" href="a00818_source.html">elst.cpp</a>.</p>
 
478
<div class="fragment"><pre class="fragment">                             {
 
479
  <a class="code" href="a00368.html">ELIST_ITERATOR</a> it(<span class="keyword">this</span>);
 
480
  <a class="code" href="a00831.html#aba1f582fd0168f3ff9225d8c90fa9eb8">inT32</a> <a class="code" href="a01042.html#acd4ea858d7133e40518e0832ff9d94b2">count</a>;
 
481
  <a class="code" href="a00369.html">ELIST_LINK</a> **base;             <span class="comment">//ptr array to sort</span>
 
482
  <a class="code" href="a00369.html">ELIST_LINK</a> **current;
 
483
  <a class="code" href="a00831.html#aba1f582fd0168f3ff9225d8c90fa9eb8">inT32</a> i;
 
484
 
 
485
<span class="preprocessor">  #ifndef NDEBUG</span>
 
486
<span class="preprocessor"></span>  <span class="keywordflow">if</span> (!<span class="keyword">this</span>)
 
487
    NULL_OBJECT.error (<span class="stringliteral">&quot;ELIST::sort&quot;</span>, <a class="code" href="a00823.html#a8a3a2e51383909b357fcdf8eda803637a781ad2788df9e25c59a70894c7832096">ABORT</a>, NULL);
 
488
<span class="preprocessor">  #endif</span>
 
489
<span class="preprocessor"></span>
 
490
  <span class="comment">/* Allocate an array of pointers, one per list element */</span>
 
491
  count = <a class="code" href="a00364.html#a571dfff8a1c0cef0f0120708a1b32185">length</a> ();
 
492
  base = (<a class="code" href="a00369.html">ELIST_LINK</a> **) malloc (count * <span class="keyword">sizeof</span> (<a class="code" href="a00369.html">ELIST_LINK</a> *));
 
493
 
 
494
  <span class="comment">/* Extract all elements, putting the pointers in the array */</span>
 
495
  current = base;
 
496
  <span class="keywordflow">for</span> (it.mark_cycle_pt (); !it.cycled_list (); it.forward ()) {
 
497
    *current = it.extract ();
 
498
    current++;
 
499
  }
 
500
 
 
501
  <span class="comment">/* Sort the pointer array */</span>
 
502
  qsort ((<span class="keywordtype">char</span> *) base, count, <span class="keyword">sizeof</span> (*base), comparator);
 
503
 
 
504
  <span class="comment">/* Rebuild the list from the sorted pointers */</span>
 
505
  current = base;
 
506
  <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="a01042.html#acd4ea858d7133e40518e0832ff9d94b2">count</a>; i++) {
 
507
    it.add_to_end (*current);
 
508
    current++;
 
509
  }
 
510
  free(base);
 
511
}
 
512
</pre></div>
 
513
</div>
 
514
</div>
 
515
<hr/><h2>Friends And Related Function Documentation</h2>
 
516
<a class="anchor" id="a4aec179a718fd9e202aa2075bfaa5709"></a><!-- doxytag: member="ELIST::ELIST_ITERATOR" ref="a4aec179a718fd9e202aa2075bfaa5709" args="" -->
 
517
<div class="memitem">
 
518
<div class="memproto">
 
519
      <table class="memname">
 
520
        <tr>
 
521
          <td class="memname">friend class <a class="el" href="a00368.html">ELIST_ITERATOR</a><code> [friend]</code></td>
 
522
        </tr>
 
523
      </table>
 
524
</div>
 
525
<div class="memdoc">
 
526
 
 
527
<p>Definition at line <a class="el" href="a00819_source.html#l00116">116</a> of file <a class="el" href="a00819_source.html">elst.h</a>.</p>
 
528
 
 
529
</div>
 
530
</div>
 
531
<hr/>The documentation for this class was generated from the following files:<ul>
 
532
<li>/usr/local/google/home/jbreiden/tesseract-ocr-read-only/ccutil/<a class="el" href="a00819_source.html">elst.h</a></li>
 
533
<li>/usr/local/google/home/jbreiden/tesseract-ocr-read-only/ccutil/<a class="el" href="a00818_source.html">elst.cpp</a></li>
 
534
</ul>
 
535
</div><!-- contents -->
 
536
</div>
 
537
<!-- window showing the filter options -->
 
538
<div id="MSearchSelectWindow"
 
539
     onmouseover="return searchBox.OnSearchSelectShow()"
 
540
     onmouseout="return searchBox.OnSearchSelectHide()"
 
541
     onkeydown="return searchBox.OnSearchSelectKey(event)">
 
542
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Defines</a></div>
 
543
 
 
544
<!-- iframe showing the search results (closed by default) -->
 
545
<div id="MSearchResultsWindow">
 
546
<iframe src="javascript:void(0)" frameborder="0" 
 
547
        name="MSearchResults" id="MSearchResults">
 
548
</iframe>
 
549
</div>
 
550
 
 
551
  <div id="nav-path" class="navpath">
 
552
    <ul>
 
553
      <li class="navelem"><a class="el" href="a00364.html">ELIST</a>      </li>
 
554
 
 
555
    <li class="footer">Generated on Mon Feb 3 2014 10:59:16 for tesseract by
 
556
    <a href="http://www.doxygen.org/index.html">
 
557
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.6.1 </li>
 
558
   </ul>
 
559
 </div>
 
560
 
 
561
 
 
562
</body>
 
563
</html>