<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>cairomm: Cairo::Device::Lock Class Reference</title> <link href="cairomm.css" rel="stylesheet" type="text/css"> </head> <body> <!-- Generated by Doxygen 1.7.3 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="examples.html"><span>Examples</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="namespaceCairo.html">Cairo</a> </li> <li class="navelem"><a class="el" href="classCairo_1_1Device.html">Device</a> </li> <li class="navelem"><a class="el" href="classCairo_1_1Device_1_1Lock.html">Lock</a> </li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> </div> <div class="headertitle"> <h1>Cairo::Device::Lock Class Reference</h1> </div> </div> <div class="contents"> <!-- doxytag: class="Cairo::Device::Lock" --> <p>A convenience class for acquiring a <a class="el" href="classCairo_1_1Device.html" title="Devices are the abstraction Cairo employs for the rendering system used by a cairo_surface_t.">Device</a> object in an exception-safe manner. <a href="#_details">More...</a></p> <p><a href="classCairo_1_1Device_1_1Lock-members.html">List of all members.</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCairo_1_1Device_1_1Lock.html#a7a376f275131519394fb4256418ee607">Lock</a> (const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>< <a class="el" href="classCairo_1_1Device.html">Device</a> >& device)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a new <a class="el" href="classCairo_1_1Device.html" title="Devices are the abstraction Cairo employs for the rendering system used by a cairo_surface_t.">Device</a> lock for <em>device</em>. <a href="#a7a376f275131519394fb4256418ee607"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCairo_1_1Device_1_1Lock.html#ac717b4a10ad681aae711c852e0824571">Lock</a> (const <a class="el" href="classCairo_1_1Device_1_1Lock.html">Lock</a>& other)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCairo_1_1Device_1_1Lock.html#a0a5e7c6b770589a05554ebae5681ed10">~Lock</a> ()</td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <div class="textblock"><p>A convenience class for acquiring a <a class="el" href="classCairo_1_1Device.html" title="Devices are the abstraction Cairo employs for the rendering system used by a cairo_surface_t.">Device</a> object in an exception-safe manner. </p> <p>The device is automatically acquired when a <a class="el" href="classCairo_1_1Device_1_1Lock.html" title="A convenience class for acquiring a Device object in an exception-safe manner.">Lock</a> object is created and released when the <a class="el" href="classCairo_1_1Device_1_1Lock.html" title="A convenience class for acquiring a Device object in an exception-safe manner.">Lock</a> object is destroyed. For example:</p> <div class="fragment"><pre class="fragment"> <span class="keywordtype">void</span> my_device_modifying_function (<span class="keyword">const</span> RefPtr<Device>& device) { <span class="comment">// Ensure the device is properly reset</span> device->flush(); Device::Lock <a class="codeRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01171.html#ga81b0bd53957243fe2f3148369df00a95">lock</a>(device); <span class="comment">// Do the custom operations on the device here.</span> <span class="comment">// But do not call any Cairo functions that might acquire devices.</span> } <span class="comment">// device is automatically released at the end of the function scope</span> </pre></div> </div><hr/><h2>Constructor & Destructor Documentation</h2> <a class="anchor" id="a7a376f275131519394fb4256418ee607"></a><!-- doxytag: member="Cairo::Device::Lock::Lock" ref="a7a376f275131519394fb4256418ee607" args="(const RefPtr< Device > &device)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Cairo::Device::Lock::Lock </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>< <a class="el" href="classCairo_1_1Device.html">Device</a> >& </td> <td class="paramname"><em>device</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Create a new <a class="el" href="classCairo_1_1Device.html" title="Devices are the abstraction Cairo employs for the rendering system used by a cairo_surface_t.">Device</a> lock for <em>device</em>. </p> </div> </div> <a class="anchor" id="ac717b4a10ad681aae711c852e0824571"></a><!-- doxytag: member="Cairo::Device::Lock::Lock" ref="ac717b4a10ad681aae711c852e0824571" args="(const Lock &other)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Cairo::Device::Lock::Lock </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCairo_1_1Device_1_1Lock.html">Lock</a>& </td> <td class="paramname"><em>other</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a0a5e7c6b770589a05554ebae5681ed10"></a><!-- doxytag: member="Cairo::Device::Lock::~Lock" ref="a0a5e7c6b770589a05554ebae5681ed10" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Cairo::Device::Lock::~Lock </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li>cairomm/device.h</li> </ul> </div> <hr class="footer"/><address class="footer"><small>Generated on Mon May 9 2011 09:51:07 for cairomm by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address> </body> </html>