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::SafeBlockingQueue</title> 49 </head> 50 <body> 51<h1><CODE>nn::os::SafeBlockingQueue</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 SafeBlockingQueue : 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>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> 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/SafeBlockingQueue/SafeBlockingQueue.html"><CODE>SafeBlockingQueue</CODE></a> 69 </th> 70<td>Constructor.</td> 71 </tr> 72 <tr> 73 <td width="100"> </td> 74 <th> 75<a href="../../../nn/os/SafeBlockingQueue/~SafeBlockingQueue.html"><CODE>~SafeBlockingQueue</CODE></a> 76 </th> 77<td>Destructor.</td> 78 </tr> 79 <tr> 80 <td width="100"> </td> 81 <th> 82<a href="../../../nn/os/SafeBlockingQueue/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/SafeBlockingQueue/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/SafeBlockingQueue/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/SafeBlockingQueue/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/SafeBlockingQueue/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/SafeBlockingQueue/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/SafeBlockingQueue/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/SafeBlockingQueue/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/SafeBlockingQueue/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/SafeBlockingQueue/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/SafeBlockingQueue/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"><span>ADLFireWall::NonCopyable</span><br /> nn::os::detail::BlockingQueueBase<br /> <b>nn::os::SafeBlockingQueue</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