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 22 span.virtual_style 23 { 24 font-size : 8pt; 25 color : white; 26 font-weight : bold; 27 background : #0a0; 28 border-left : solid 1px #0f0; 29 border-top : solid 1px #0f0; 30 border-right : solid 1px #060; 31 border-bottom : solid 1px #060; 32 padding-left : 2px; 33 padding-right : 2px; 34 } 35 36 span.protected_style 37 { 38 font-size : 8pt; 39 color : white; 40 font-weight : bold; 41 background : #444; 42 border-left : solid 1px #ccc; 43 border-top : solid 1px #ccc; 44 border-right : solid 1px #222; 45 border-bottom : solid 1px #222; 46 padding-left : 2px; 47 padding-right : 2px; 48 } 49 --></style> 50<title>nn::os::SafeBlockingQueue</title> 51 </head> 52 <body> 53<h1><CODE>nn::os::SafeBlockingQueue</CODE> Class</h1> 54 <div class="section"> 55<b>Header file: </b>nn/os.h</div> 56<h2>Syntax</h2> 57 <div class="section"> 58 <pre class="definition">class SafeBlockingQueue : private nn::os::detail::BlockingQueueBase</pre> 59 </div> 60<h2>Description</h2> 61 <div class="section"> 62<p>Class for handling blocking queues.</p><p>This class is essentially the same as <CODE><a href="../../../nn/os/BlockingQueue/Overview.html">BlockingQueue</a></CODE>, but with this class, priority inversion will never occur because it uses the <CODE><a href="../../../nn/os/Mutex/Overview.html">Mutex</a></CODE> class for thread synchronization. As a consequence, its performance might drop slightly.</p><!-- write here --></div> 63 <a name="function" id="function"> 64<h2>Member Functions</h2> 65 <div class="section"> 66 <table class="members"> 67 <tr> 68 <td width="100"> </td> 69 <th> 70<a href="../../../nn/os/SafeBlockingQueue/SafeBlockingQueue.html"><CODE>SafeBlockingQueue</CODE></a> 71 </th> 72<td>Constructor.</td> 73 </tr> 74 <tr> 75 <td width="100"> </td> 76 <th> 77<a href="../../../nn/os/SafeBlockingQueue/~SafeBlockingQueue.html"><CODE>~SafeBlockingQueue</CODE></a> 78 </th> 79<td>Destructor.</td> 80 </tr> 81 <tr> 82 <td width="100"> </td> 83 <th> 84<a href="../../../nn/os/SafeBlockingQueue/Initialize.html"><CODE>Initialize</CODE></a> 85 </th> 86<td>Initializes a blocking queue using the specified buffer and size.</td> 87 </tr> 88 <tr> 89 <td width="100"> </td> 90 <th> 91<a href="../../../nn/os/SafeBlockingQueue/TryInitialize.html"><CODE>TryInitialize</CODE></a> 92 </th> 93<td>Initializes a blocking queue using the specified buffer and size.</td> 94 </tr> 95 <tr> 96 <td width="100"> </td> 97 <th> 98<a href="../../../nn/os/SafeBlockingQueue/Finalize.html"><CODE>Finalize</CODE></a> 99 </th> 100<td>Destroys a blocking queue.</td> 101 </tr> 102 <tr> 103 <td width="100"> </td> 104 <th> 105<a href="../../../nn/os/SafeBlockingQueue/Enqueue.html"><CODE>Enqueue</CODE></a> 106 </th> 107<td>Inserts an element at the end of the queue.</td> 108 </tr> 109 <tr> 110 <td width="100"> </td> 111 <th> 112<a href="../../../nn/os/SafeBlockingQueue/TryEnqueue.html"><CODE>TryEnqueue</CODE></a> 113 </th> 114<td>Tries to insert an element at the end of the queue.</td> 115 </tr> 116 <tr> 117 <td width="100"> </td> 118 <th> 119<a href="../../../nn/os/SafeBlockingQueue/Jam.html"><CODE>Jam</CODE></a> 120 </th> 121<td>Inserts an element at the front of the queue.</td> 122 </tr> 123 <tr> 124 <td width="100"> </td> 125 <th> 126<a href="../../../nn/os/SafeBlockingQueue/TryJam.html"><CODE>TryJam</CODE></a> 127 </th> 128<td>Tries to insert an element at the front of the queue.</td> 129 </tr> 130 <tr> 131 <td width="100"> </td> 132 <th> 133<a href="../../../nn/os/SafeBlockingQueue/Dequeue.html"><CODE>Dequeue</CODE></a> 134 </th> 135<td>Removes the first element from the front of the queue.</td> 136 </tr> 137 <tr> 138 <td width="100"> </td> 139 <th> 140<a href="../../../nn/os/SafeBlockingQueue/TryDequeue.html"><CODE>TryDequeue</CODE></a> 141 </th> 142<td>Removes the first element from the front of the queue.</td> 143 </tr> 144 <tr> 145 <td width="100"> </td> 146 <th> 147<a href="../../../nn/os/SafeBlockingQueue/GetFront.html"><CODE>GetFront</CODE></a> 148 </th> 149<td>Gets the element at the front of the queue.</td> 150 </tr> 151 <tr> 152 <td width="100"> </td> 153 <th> 154<a href="../../../nn/os/SafeBlockingQueue/TryGetFront.html"><CODE>TryGetFront</CODE></a> 155 </th> 156<td>Gets the element at the front of the queue.</td> 157 </tr> </table> 158 </div> 159 </a> 160<h2>Class Hierarchy</h2> 161 <div class="section"> 162<p class="hierarchy"><span>ADLFireWall::NonCopyable</span><br /> nn::os::detail::BlockingQueueBase<br /> <b>nn::os::SafeBlockingQueue</b> 163 </p> 164 </div> 165<h2>Revision History</h2> 166 <div class="section"> 167 <dl class="history"> 168 <dt>2010/01/07</dt> 169<dd>Initial version.<br /> 170 </dd> 171 </dl> 172 </div> 173 <hr><p>CONFIDENTIAL</p></body> 174</html>