Sophie

Sophie

distrib > Mandriva > 2010.2 > i586 > media > contrib-backports > by-pkgid > 4f5f2dc0f55b453456458df885792b0b > files > 301

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::SharedProtocol 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="a00128.html">SharedProtocol</a>
  </div>
</div>
<div class="contents">
<h1>ucommon::SharedProtocol Class Reference</h1><!-- doxytag: class="ucommon::SharedProtocol" -->
<p>An exclusive locking protocol interface base.  
<a href="#_details">More...</a></p>

<p><code>#include &lt;<a class="el" href="a00177_source.html">access.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for ucommon::SharedProtocol:</div>
<div class="dynsection">
<div class="center"><img src="a00506.png" border="0" usemap="#ucommon_1_1_shared_protocol_inherit__map" alt="Inheritance graph"/></div>
<map name="ucommon_1_1_shared_protocol_inherit__map" id="ucommon_1_1_shared_protocol_inherit__map">
<area shape="rect" id="node3" href="a00038.html" title="An optimized and convertable shared lock." alt="" coords="5,80,267,107"/><area shape="rect" id="node5" href="a00119.html" title="A portable counting semaphore class." alt="" coords="291,80,493,107"/><area shape="rect" id="node7" href="a00157.html" title="A generic and portable implimentation of Read/Write locking." alt="" coords="517,80,728,107"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<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">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00128.html#af0abe5b2d57ac6ccf98cdc151c61915a">Exclusive</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert object to an exclusive lock.  <a href="#af0abe5b2d57ac6ccf98cdc151c61915a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa388c6608baa4f5594992f40864c9e80"></a><!-- doxytag: member="ucommon::SharedProtocol::Lock" ref="aa388c6608baa4f5594992f40864c9e80" args="(void)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00128.html#aa388c6608baa4f5594992f40864c9e80">Lock</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A convenience member function for accessing the shared lock. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00128.html#ae3758b5d521a35cd283d4f6329564f9f">Share</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Share the lock with other referencers.  <a href="#ae3758b5d521a35cd283d4f6329564f9f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa4032345ba459dd96cda1bbf70b43e01"></a><!-- doxytag: member="ucommon::SharedProtocol::Shlock" ref="aa4032345ba459dd96cda1bbf70b43e01" args="(void)=0" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00128.html#aa4032345ba459dd96cda1bbf70b43e01">Shlock</a> (void)=0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Protocol interface to share lock the object. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a94e79428fccab57606c5f00bc6b833fd"></a><!-- doxytag: member="ucommon::SharedProtocol::Unlock" ref="a94e79428fccab57606c5f00bc6b833fd" args="(void)=0" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00128.html#a94e79428fccab57606c5f00bc6b833fd">Unlock</a> (void)=0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Protocol interface to release a lock. <br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>An exclusive locking protocol interface base. </p>
<p>This is an abstract class to form objects that will operate under an exclusive lock while being actively referenced by a smart pointer. </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="a00177_source.html#l00079">79</a> of file <a class="el" href="a00177_source.html">access.h</a>.</p>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="af0abe5b2d57ac6ccf98cdc151c61915a"></a><!-- doxytag: member="ucommon::SharedProtocol::Exclusive" ref="af0abe5b2d57ac6ccf98cdc151c61915a" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void ucommon::SharedProtocol::Exclusive </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Convert object to an exclusive lock. </p>
<p>Many of our shared locking objects such as the "conditional lock" support the ability to switch between shared and exclusive locking modes. This derived protocol member allows one to temporarily assert exclusive locking when tied to such methods. </p>

<p>Reimplemented in <a class="el" href="a00038.html#a4a6286ab13f8c083f8250ba380c8f540">ucommon::ConditionalLock</a>.</p>

</div>
</div>
<a class="anchor" id="ae3758b5d521a35cd283d4f6329564f9f"></a><!-- doxytag: member="ucommon::SharedProtocol::Share" ref="ae3758b5d521a35cd283d4f6329564f9f" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void ucommon::SharedProtocol::Share </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Share the lock with other referencers. </p>
<p>Many of our shared locking objects support the ability to switch between shared and exclusive mode. This derived protocol member allows one to restore the lock to shared mode after it has been made exclusive. </p>

<p>Reimplemented in <a class="el" href="a00038.html#a7e57ad8ee1a0c49d4a418505a19395b6">ucommon::ConditionalLock</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>ucommon/<a class="el" href="a00177_source.html">access.h</a></li>
</ul>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Thu Jul 14 16:39:58 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>