Sophie

Sophie

distrib > Mandriva > 2010.1 > i586 > by-pkgid > 4f5f2dc0f55b453456458df885792b0b > files > 424

ucommon-doc-5.0.4-1mdv2010.2.i586.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>ucommon: ucommon::ThreadLock::gaurd_reader Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li><a href="classes.html"><span>Data&nbsp;Structure&nbsp;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="a00208.html">ucommon</a>::<a class="el" href="a00157.html">ThreadLock</a>::<a class="el" href="a00158.html">gaurd_reader</a>
  </div>
</div>
<div class="contents">
<h1>ucommon::ThreadLock::gaurd_reader Class Reference</h1><!-- doxytag: class="ucommon::ThreadLock::gaurd_reader" -->
<p>Gaurd class to apply scope based access locking to objects.  
<a href="#_details">More...</a></p>

<p><code>#include &lt;<a class="el" href="a00202_source.html">thread.h</a>&gt;</code></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#a30fc7cc2ca771d449952b5c84918b8a3">gaurd_reader</a> (void *object)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct a gaurd for a specific object.  <a href="#a30fc7cc2ca771d449952b5c84918b8a3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#a48d4ae0ae30fc4668ada0e853295f4eb">gaurd_reader</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create an unitialized instance of gaurd.  <a href="#a48d4ae0ae30fc4668ada0e853295f4eb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#a442aedf32b717243be25958633f6aad9">operator=</a> (void *<a class="el" href="a00110.html">pointer</a>)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set gaurd to read lock a new object.  <a href="#a442aedf32b717243be25958633f6aad9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acaf300ccdd729205ded14d14b4333630"></a><!-- doxytag: member="ucommon::ThreadLock::gaurd_reader::release" ref="acaf300ccdd729205ded14d14b4333630" args="(void)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#acaf300ccdd729205ded14d14b4333630">release</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Prematurely release a gaurd. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#a25fdfcf65bc50387549cc71e830b5447">set</a> (void *object)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set gaurd to mutex lock a new object.  <a href="#a25fdfcf65bc50387549cc71e830b5447"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aff7e26ccb4de034525cc8b9f09a63f43"></a><!-- doxytag: member="ucommon::ThreadLock::gaurd_reader::~gaurd_reader" ref="aff7e26ccb4de034525cc8b9f09a63f43" args="()" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#aff7e26ccb4de034525cc8b9f09a63f43">~gaurd_reader</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Release mutex when gaurd falls out of scope. <br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Gaurd class to apply scope based access locking to objects. </p>
<p>The rwlock is located from the rwlock pool rather than contained in the target object, and the read lock is released when the gaurd object falls out of scope. This is essentially an automation mechanism for mutex::reader. </p>
<dl class="author"><dt><b>Author:</b></dt><dd>David Sugar &lt;<a href="mailto:dyfet@gnutelephony.org">dyfet@gnutelephony.org</a>&gt; </dd></dl>

<p>Definition at line <a class="el" href="a00202_source.html#l00565">565</a> of file <a class="el" href="a00202_source.html">thread.h</a>.</p>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a48d4ae0ae30fc4668ada0e853295f4eb"></a><!-- doxytag: member="ucommon::ThreadLock::gaurd_reader::gaurd_reader" ref="a48d4ae0ae30fc4668ada0e853295f4eb" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ucommon::ThreadLock::gaurd_reader::gaurd_reader </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create an unitialized instance of gaurd. </p>
<p>Usually used with a gaurd = operator. </p>

</div>
</div>
<a class="anchor" id="a30fc7cc2ca771d449952b5c84918b8a3"></a><!-- doxytag: member="ucommon::ThreadLock::gaurd_reader::gaurd_reader" ref="a30fc7cc2ca771d449952b5c84918b8a3" args="(void *object)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ucommon::ThreadLock::gaurd_reader::gaurd_reader </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>object</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Construct a gaurd for a specific object. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>to gaurd. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a442aedf32b717243be25958633f6aad9"></a><!-- doxytag: member="ucommon::ThreadLock::gaurd_reader::operator=" ref="a442aedf32b717243be25958633f6aad9" args="(void *pointer)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::ThreadLock::gaurd_reader::operator= </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>pointer</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set gaurd to read lock a new object. </p>
<p>If a lock is currently held, it is released. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>pointer</em>&nbsp;</td><td>to object to gaurd. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00202_source.html#l00605">605</a> of file <a class="el" href="a00202_source.html">thread.h</a>.</p>

</div>
</div>
<a class="anchor" id="a25fdfcf65bc50387549cc71e830b5447"></a><!-- doxytag: member="ucommon::ThreadLock::gaurd_reader::set" ref="a25fdfcf65bc50387549cc71e830b5447" args="(void *object)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::ThreadLock::gaurd_reader::set </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>object</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set gaurd to mutex lock a new object. </p>
<p>If a lock is currently held, it is released. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>to gaurd. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>ucommon/<a class="el" href="a00202_source.html">thread.h</a></li>
</ul>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Thu Jul 14 16:40:09 2011 for ucommon by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>