Sophie

Sophie

distrib > Mandriva > 2011.0 > x86_64 > by-pkgid > e4e5aca55b6d7244e6bae95bf4fde3ca > files > 426

lib64edelib-devel-2.0-1.x86_64.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"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>edelib: XSettingsData Class Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />



</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">edelib
   &#160;<span id="projectnumber">2.0.0</span>
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.6.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</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="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespaceedelib.html">edelib</a>      </li>
      <li class="navelem"><a class="el" href="structedelib_1_1XSettingsData.html">XSettingsData</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-attribs">Public Attributes</a>  </div>
  <div class="headertitle">
<div class="title">XSettingsData Class Reference</div>  </div>
</div><!--header-->
<div class="contents">
<!-- doxytag: class="edelib::XSettingsData" -->
<p>Main data shared between client and manager.  
 <a href="structedelib_1_1XSettingsData.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="XSettingsCommon_8h_source.html">edelib/XSettingsCommon.h</a>&gt;</code></p>

<p><a href="classedelib_1_1XSettingsData-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">Display *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structedelib_1_1XSettingsData.html#a854f9eb314f72feecf68ba03c6f0e5d5">display</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structedelib_1_1XSettingsData.html#a3109b0889cec9f0de874a2bdc1f84372">screen</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classedelib_1_1Window.html">Window</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structedelib_1_1XSettingsData.html#a04a14fa3172dc39fd86bdef8a3ff50cd">manager_win</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">Atom&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structedelib_1_1XSettingsData.html#a55dc77899667156adb6e362c12c03cd5">selection_atom</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">Atom&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structedelib_1_1XSettingsData.html#ac7d542d73a6a3866b8201765c6484075">manager_atom</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">Atom&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structedelib_1_1XSettingsData.html#ae3214b39dc4762149c4b7a023ce66c09">xsettings_atom</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structedelib_1_1XSettingsList.html">XSettingsList</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structedelib_1_1XSettingsData.html#abb51bc01c6724ac265616561d2a3d110">settings</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structedelib_1_1XSettingsData.html#a1e3162f089d71a92c383b398715e0c92">serial</a></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Main data shared between client and manager. </p>
<p>This structure is <em>shared</em> between client and manger. (should not be confused with ordinary sharing like memory sharing etc.)</p>
<p>This is short explaination what are differences between official XSETTINGS protocol.</p>
<p>Both client and manager implementations use this structure althought some members they fill it on different ways, notably <em>manager_win</em>. Manager will create and initialize <em>manager_win</em> variable but client will try to figure it out if manager is running. Rest of the members are filled in usual way.</p>
<p>Why complicate things like this? First of all XSETTINGS protocol nicely distinguish client and manager roles, where client can only read settings and manager set them and keep them in one place. Main problem with this is that client can <em>only</em> read those settings, but not change or alter them, so if client wants to save it's preferences it has somehow communicate with manager.</p>
<p>To avoid that, via current implementation, client will behave like half-manager (sorta of) and it can directly write to manager space. Will this cause races? Probably, but as long as client peak/write/read it's own settings problems should not occur; manager will setup initial settings at the startup and will not change them during runtime (most of, for me, known managers does not do this).</p>
<p>Alternative would be to create some communication channel with manager, but this will create incopatible manager with ones already developed. On other hand this will be the only solution if we are starting to get a lot of races.</p>
<p>If someone knows better way to handle this, please mail me; I will be happy to hear alternatives. </p>
</div><hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a854f9eb314f72feecf68ba03c6f0e5d5"></a><!-- doxytag: member="edelib::XSettingsData::display" ref="a854f9eb314f72feecf68ba03c6f0e5d5" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Display* <a class="el" href="structedelib_1_1XSettingsData.html#a854f9eb314f72feecf68ba03c6f0e5d5">display</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>display running XSETTINGS </p>

</div>
</div>
<a class="anchor" id="ac7d542d73a6a3866b8201765c6484075"></a><!-- doxytag: member="edelib::XSettingsData::manager_atom" ref="ac7d542d73a6a3866b8201765c6484075" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Atom <a class="el" href="structedelib_1_1XSettingsData.html#ac7d542d73a6a3866b8201765c6484075">manager_atom</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>manager atom </p>

</div>
</div>
<a class="anchor" id="a04a14fa3172dc39fd86bdef8a3ff50cd"></a><!-- doxytag: member="edelib::XSettingsData::manager_win" ref="a04a14fa3172dc39fd86bdef8a3ff50cd" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classedelib_1_1Window.html">Window</a> <a class="el" href="structedelib_1_1XSettingsData.html#a04a14fa3172dc39fd86bdef8a3ff50cd">manager_win</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>manager window </p>

</div>
</div>
<a class="anchor" id="a3109b0889cec9f0de874a2bdc1f84372"></a><!-- doxytag: member="edelib::XSettingsData::screen" ref="a3109b0889cec9f0de874a2bdc1f84372" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="structedelib_1_1XSettingsData.html#a3109b0889cec9f0de874a2bdc1f84372">screen</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>screen running XSETTINGS </p>

</div>
</div>
<a class="anchor" id="a55dc77899667156adb6e362c12c03cd5"></a><!-- doxytag: member="edelib::XSettingsData::selection_atom" ref="a55dc77899667156adb6e362c12c03cd5" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Atom <a class="el" href="structedelib_1_1XSettingsData.html#a55dc77899667156adb6e362c12c03cd5">selection_atom</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>atom containing current screen number </p>

</div>
</div>
<a class="anchor" id="a1e3162f089d71a92c383b398715e0c92"></a><!-- doxytag: member="edelib::XSettingsData::serial" ref="a1e3162f089d71a92c383b398715e0c92" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long <a class="el" href="structedelib_1_1XSettingsData.html#a1e3162f089d71a92c383b398715e0c92">serial</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>a number used to check changes </p>

</div>
</div>
<a class="anchor" id="abb51bc01c6724ac265616561d2a3d110"></a><!-- doxytag: member="edelib::XSettingsData::settings" ref="abb51bc01c6724ac265616561d2a3d110" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structedelib_1_1XSettingsList.html">XSettingsList</a>* <a class="el" href="structedelib_1_1XSettingsData.html#abb51bc01c6724ac265616561d2a3d110">settings</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>list of settings we currently have </p>

</div>
</div>
<a class="anchor" id="ae3214b39dc4762149c4b7a023ce66c09"></a><!-- doxytag: member="edelib::XSettingsData::xsettings_atom" ref="ae3214b39dc4762149c4b7a023ce66c09" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Atom <a class="el" href="structedelib_1_1XSettingsData.html#ae3214b39dc4762149c4b7a023ce66c09">xsettings_atom</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>XSETTINGS atom </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>edelib/<a class="el" href="XSettingsCommon_8h_source.html">XSettingsCommon.h</a></li>
</ul>
</div><!-- contents -->


<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 5 2012 17:49:03 for edelib by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>

</body>
</html>