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">
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: SVSemaphore Class Reference</title>
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);
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); });
25
<div id="top"><!-- do not remove this div! -->
29
<table cellspacing="0" cellpadding="0">
31
<tr style="height: 56px;">
34
<td style="padding-left: 0.5em;">
35
<div id="projectname">tesseract
36
 <span id="projectnumber">3.03</span>
48
<!-- Generated by Doxygen 1.7.6.1 -->
49
<script type="text/javascript">
50
var searchBox = new SearchBox("searchBox", "search",false,'Search');
52
<div id="navrow1" class="tabs">
54
<li><a href="index.html"><span>Main Page</span></a></li>
55
<li><a href="pages.html"><span>Related 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>
61
<div id="MSearchBox" class="MSearchBoxInactive">
63
<img id="MSearchSelect" src="search/mag_sel.png"
64
onmouseover="return searchBox.OnSearchSelectShow()"
65
onmouseout="return searchBox.OnSearchSelectHide()"
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>
78
<div id="navrow2" class="tabs2">
80
<li><a href="annotated.html"><span>Class List</span></a></li>
81
<li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
82
<li><a href="functions.html"><span>Class Members</span></a></li>
86
<div id="side-nav" class="ui-resizable side-nav-resizable">
88
<div id="nav-tree-contents">
91
<div id="splitbar" style="-moz-user-select:none;"
92
class="ui-resizable-handle">
95
<script type="text/javascript">
96
initNavTree('a00580.html','');
98
<div id="doc-content">
100
<div class="summary">
101
<a href="#pub-methods">Public Member Functions</a> </div>
102
<div class="headertitle">
103
<div class="title">SVSemaphore Class Reference</div> </div>
105
<div class="contents">
106
<!-- doxytag: class="SVSemaphore" -->
107
<p><code>#include <<a class="el" href="a01208_source.html">svutil.h</a>></code></p>
109
<p><a href="a01673.html">List of all members.</a></p>
110
<table class="memberdecls">
111
<tr><td colspan="2"><h2><a name="pub-methods"></a>
112
Public Member Functions</h2></td></tr>
113
<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00580.html#a7eb21152bfeffb6e2d78207269838058">SVSemaphore</a> ()</td></tr>
114
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets up a semaphore. <a href="#a7eb21152bfeffb6e2d78207269838058"></a><br/></td></tr>
115
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00580.html#aed4f0b877daff9550350035478a2356c">Signal</a> ()</td></tr>
116
<tr><td class="mdescLeft"> </td><td class="mdescRight">Signal a semaphore. <a href="#aed4f0b877daff9550350035478a2356c"></a><br/></td></tr>
117
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00580.html#a83a06106c3881b8248fd907029583902">Wait</a> ()</td></tr>
118
<tr><td class="mdescLeft"> </td><td class="mdescRight">Wait on a semaphore. <a href="#a83a06106c3881b8248fd907029583902"></a><br/></td></tr>
120
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
121
<div class="textblock"><p>A semaphore class which encapsulates the main signalling and wait abilities of semaphores for windows and unix. </p>
123
<p>Definition at line <a class="el" href="a01208_source.html#l00067">67</a> of file <a class="el" href="a01208_source.html">svutil.h</a>.</p>
124
</div><hr/><h2>Constructor & Destructor Documentation</h2>
125
<a class="anchor" id="a7eb21152bfeffb6e2d78207269838058"></a><!-- doxytag: member="SVSemaphore::SVSemaphore" ref="a7eb21152bfeffb6e2d78207269838058" args="()" -->
126
<div class="memitem">
127
<div class="memproto">
128
<table class="memname">
130
<td class="memname"><a class="el" href="a00580.html#a7eb21152bfeffb6e2d78207269838058">SVSemaphore::SVSemaphore</a> </td>
132
<td class="paramname"></td><td>)</td>
139
<p>Sets up a semaphore. </p>
141
<p>Definition at line <a class="el" href="a01207_source.html#l00125">125</a> of file <a class="el" href="a01207_source.html">svutil.cpp</a>.</p>
142
<div class="fragment"><pre class="fragment"> {
143
<span class="preprocessor">#ifdef _WIN32</span>
144
<span class="preprocessor"></span> semaphore_ = CreateSemaphore(0, 0, 10, 0);
145
<span class="preprocessor">#elif defined(__APPLE__)</span>
146
<span class="preprocessor"></span> <span class="keywordtype">char</span> name[50];
147
snprintf(name, <span class="keyword">sizeof</span>(name), <span class="stringliteral">"%d"</span>, random());
149
semaphore_ = sem_open(name, O_CREAT , S_IWUSR, 0);
150
<span class="keywordflow">if</span> (semaphore_ == SEM_FAILED) {
151
perror(<span class="stringliteral">"sem_open"</span>);
153
<span class="preprocessor">#else</span>
154
<span class="preprocessor"></span> sem_init(&semaphore_, 0, 0);
155
<span class="preprocessor">#endif</span>
156
<span class="preprocessor"></span>}
160
<hr/><h2>Member Function Documentation</h2>
161
<a class="anchor" id="aed4f0b877daff9550350035478a2356c"></a><!-- doxytag: member="SVSemaphore::Signal" ref="aed4f0b877daff9550350035478a2356c" args="()" -->
162
<div class="memitem">
163
<div class="memproto">
164
<table class="memname">
166
<td class="memname">void <a class="el" href="a00580.html#aed4f0b877daff9550350035478a2356c">SVSemaphore::Signal</a> </td>
168
<td class="paramname"></td><td>)</td>
175
<p>Signal a semaphore. </p>
177
<p>Definition at line <a class="el" href="a01207_source.html#l00141">141</a> of file <a class="el" href="a01207_source.html">svutil.cpp</a>.</p>
178
<div class="fragment"><pre class="fragment"> {
179
<span class="preprocessor">#ifdef _WIN32</span>
180
<span class="preprocessor"></span> ReleaseSemaphore(semaphore_, 1, NULL);
181
<span class="preprocessor">#elif defined(__APPLE__)</span>
182
<span class="preprocessor"></span> sem_post(semaphore_);
183
<span class="preprocessor">#else</span>
184
<span class="preprocessor"></span> sem_post(&semaphore_);
185
<span class="preprocessor">#endif</span>
186
<span class="preprocessor"></span>}
190
<a class="anchor" id="a83a06106c3881b8248fd907029583902"></a><!-- doxytag: member="SVSemaphore::Wait" ref="a83a06106c3881b8248fd907029583902" args="()" -->
191
<div class="memitem">
192
<div class="memproto">
193
<table class="memname">
195
<td class="memname">void <a class="el" href="a00580.html#a83a06106c3881b8248fd907029583902">SVSemaphore::Wait</a> </td>
197
<td class="paramname"></td><td>)</td>
204
<p>Wait on a semaphore. </p>
206
<p>Definition at line <a class="el" href="a01207_source.html#l00151">151</a> of file <a class="el" href="a01207_source.html">svutil.cpp</a>.</p>
207
<div class="fragment"><pre class="fragment"> {
208
<span class="preprocessor">#ifdef _WIN32</span>
209
<span class="preprocessor"></span> WaitForSingleObject(semaphore_, INFINITE);
210
<span class="preprocessor">#elif defined(__APPLE__)</span>
211
<span class="preprocessor"></span> sem_wait(semaphore_);
212
<span class="preprocessor">#else</span>
213
<span class="preprocessor"></span> sem_wait(&semaphore_);
214
<span class="preprocessor">#endif</span>
215
<span class="preprocessor"></span>}
219
<hr/>The documentation for this class was generated from the following files:<ul>
220
<li>/usr/local/google/home/jbreiden/tesseract-ocr-read-only/viewer/<a class="el" href="a01208_source.html">svutil.h</a></li>
221
<li>/usr/local/google/home/jbreiden/tesseract-ocr-read-only/viewer/<a class="el" href="a01207_source.html">svutil.cpp</a></li>
223
</div><!-- contents -->
225
<!-- window showing the filter options -->
226
<div id="MSearchSelectWindow"
227
onmouseover="return searchBox.OnSearchSelectShow()"
228
onmouseout="return searchBox.OnSearchSelectHide()"
229
onkeydown="return searchBox.OnSearchSelectKey(event)">
230
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Defines</a></div>
232
<!-- iframe showing the search results (closed by default) -->
233
<div id="MSearchResultsWindow">
234
<iframe src="javascript:void(0)" frameborder="0"
235
name="MSearchResults" id="MSearchResults">
239
<div id="nav-path" class="navpath">
241
<li class="navelem"><a class="el" href="a00580.html">SVSemaphore</a> </li>
243
<li class="footer">Generated on Mon Feb 3 2014 10:59:17 for tesseract by
244
<a href="http://www.doxygen.org/index.html">
245
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.6.1 </li>