1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xml:lang="en-US" lang="en-US" xmlns="http://www.w3.org/1999/xhtml">
3  <head>
4    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5    <meta http-equiv="Content-Style-Type" content="text/css" />
6    <link rel="stylesheet" href="../../../css/manpage.css" type="text/css" />
7    <style type="text/css"><!--
8      span.static_style
9      {
10        font-size			: 8pt;
11        color				: white;
12        font-weight			: bold;
13        background			: #44f;
14        border-left			: solid 1px #aaf;
15        border-top			: solid 1px #aaf;
16        border-right		: solid 1px #00c;
17        border-bottom		: solid 1px #00c;
18        padding-left		: 2px;
19        padding-right		: 2px;
20      }
21      span.virtual_style
22      {
23        font-size			 : 8pt;
24        color				 : white;
25        font-weight			: bold;
26        background			: #0a0;
27        border-left			: solid 1px #0f0;
28        border-top			: solid 1px #0f0;
29        border-right		: solid 1px #060;
30        border-bottom		: solid 1px #060;
31        padding-left		: 2px;
32        padding-right		: 2px;
33      }
34      span.protected_style
35      {
36        font-size			 : 8pt;
37        color				 : white;
38        font-weight			: bold;
39        background			: #444;
40        border-left			: solid 1px #ccc;
41        border-top			: solid 1px #ccc;
42        border-right		: solid 1px #222;
43        border-bottom		: solid 1px #222;
44        padding-left		: 2px;
45        padding-right		: 2px;
46      }
47        --></style>
48<title>nn::os::BlockingQueue</title>
49  </head>
50  <body>
51<h1><CODE><a href="../../../nn/Overview.html">nn</a>::<a href="../../../nn/os/Overview.html">os</a>::BlockingQueue</CODE> Class</h1>
52    <div class="section">
53<b>Header file: </b>nn/os.h</div>
54<h2>Syntax</h2>
55    <div class="section">
56<pre class="definition">class BlockingQueue : private nn::os::detail::BlockingQueueBase</pre>
57    </div>
58<h2>Description</h2>
59    <div class="section">
60<p>Class for handling blocking queues.</p><p>A blocking queue is a messaging mechanism that provides the ability to synchronize threads safely.</p><p>The number of elements that can be placed in the queue is limited by the size of the buffer provided during initialization. Attempting to add additional elements to the queue beyond this limit will cause the thread to block. Similarly, attempting to retrieve an element from an empty queue will cause the thread to block.</p><p>Blocking queues have the same features as what have up until now been referred to as &quot;message queues.&quot;</p><p>Because <CODE><a href="../../../nn/os/CriticalSection/Overview.html">CriticalSection</a></CODE> sections are used internally for thread synchronization, deadlocks may occur in situations that could lead to priority inversion or other scheduling issues. When such a possibility exists, use <CODE><a href="../../../nn/os/SafeBlockingQueue/Overview.html">SafeBlockingQueue</a></CODE> instead.</p><!-- write here --></div>
61    <a name="function" id="function">
62<h2>Member Functions</h2>
63      <div class="section">
64        <table class="members">
65          <tr>
66            <td width="100">  </td>
67            <th>
68<a href="../../../nn/os/BlockingQueue/BlockingQueue.html"><CODE>BlockingQueue</CODE></a>
69            </th>
70<td>Constructor.</td>
71          </tr>
72          <tr>
73            <td width="100">  </td>
74            <th>
75<a href="../../../nn/os/BlockingQueue/~BlockingQueue.html"><CODE>~BlockingQueue</CODE></a>
76            </th>
77<td>Destructor.</td>
78          </tr>
79          <tr>
80            <td width="100">  </td>
81            <th>
82<a href="../../../nn/os/BlockingQueue/Initialize.html"><CODE>Initialize</CODE></a>
83            </th>
84<td>Initializes a blocking queue using the specified buffer and size.</td>
85          </tr>
86          <tr>
87            <td width="100">  </td>
88            <th>
89<a href="../../../nn/os/BlockingQueue/TryInitialize.html"><CODE>TryInitialize</CODE></a>
90            </th>
91<td>Initializes a blocking queue using the specified buffer and size.</td>
92          </tr>
93          <tr>
94            <td width="100">  </td>
95            <th>
96<a href="../../../nn/os/BlockingQueue/Finalize.html"><CODE>Finalize</CODE></a>
97            </th>
98<td>Destroys a blocking queue.</td>
99          </tr>
100          <tr>
101            <td width="100">  </td>
102            <th>
103<a href="../../../nn/os/BlockingQueue/Enqueue.html"><CODE>Enqueue</CODE></a>
104            </th>
105<td>Inserts an element at the end of the queue.</td>
106          </tr>
107          <tr>
108            <td width="100">  </td>
109            <th>
110<a href="../../../nn/os/BlockingQueue/TryEnqueue.html"><CODE>TryEnqueue</CODE></a>
111            </th>
112<td>Tries to insert an element at the end of the queue.</td>
113          </tr>
114          <tr>
115            <td width="100">  </td>
116            <th>
117<a href="../../../nn/os/BlockingQueue/Jam.html"><CODE>Jam</CODE></a>
118            </th>
119<td>Inserts an element at the front of the queue.</td>
120          </tr>
121          <tr>
122            <td width="100">  </td>
123            <th>
124<a href="../../../nn/os/BlockingQueue/TryJam.html"><CODE>TryJam</CODE></a>
125            </th>
126<td>Tries to insert an element at the front of the queue.</td>
127          </tr>
128          <tr>
129            <td width="100">  </td>
130            <th>
131<a href="../../../nn/os/BlockingQueue/Dequeue.html"><CODE>Dequeue</CODE></a>
132            </th>
133<td>Removes the first element from the front of the queue.</td>
134          </tr>
135          <tr>
136            <td width="100">  </td>
137            <th>
138<a href="../../../nn/os/BlockingQueue/TryDequeue.html"><CODE>TryDequeue</CODE></a>
139            </th>
140<td>Removes the first element from the front of the queue.</td>
141          </tr>
142          <tr>
143            <td width="100">  </td>
144            <th>
145<a href="../../../nn/os/BlockingQueue/GetFront.html"><CODE>GetFront</CODE></a>
146            </th>
147<td>Gets the element at the front of the queue.</td>
148          </tr>
149          <tr>
150            <td width="100">  </td>
151            <th>
152<a href="../../../nn/os/BlockingQueue/TryGetFront.html"><CODE>TryGetFront</CODE></a>
153            </th>
154<td>Gets the element at the front of the queue.</td>
155          </tr> </table>
156      </div>
157    </a>
158<h2>Class Hierarchy</h2>
159    <div class="section">
160<p class="hierarchy"><a href="../../../nn/util/NonCopyable/Overview.html">nn::util::NonCopyable</a><br />&nbsp;&nbsp;nn::os::detail::BlockingQueueBase<br />&nbsp;&nbsp;&nbsp;&nbsp;<b>nn::os::BlockingQueue</b>
161      </p>
162    </div>
163<h2>Revision History</h2>
164    <div class="section">
165      <dl class="history">
166        <dt>2010/01/07</dt>
167<dd>Initial version.<br />
168        </dd>
169      </dl>
170    </div>
171  <hr><p>CONFIDENTIAL</p></body>
172</html>
173