Sophie

Sophie

distrib > Mandriva > 2010.2 > i586 > media > contrib-backports > by-pkgid > 9601c7beb4ff23e834bfa171795ed560 > files > 633

vidalia-0.2.9-1mdv2010.1.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>Vidalia: UPNPControlThread 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="index.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>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="dirs.html"><span>Directories</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="classes.html"><span>Class&nbsp;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>UPNPControlThread Class Reference</h1><!-- doxytag: class="UPNPControlThread" -->
<p><code>#include &lt;<a class="el" href="_u_p_n_p_control_thread_8h_source.html">UPNPControlThread.h</a>&gt;</code></p>

<p><a href="class_u_p_n_p_control_thread-members.html">List of all members.</a></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="class_u_p_n_p_control_thread.html#acad904d9162fd36ba3c8a70fe4da324c">UPNPControlThread</a> (<a class="el" href="class_u_p_n_p_control.html">UPNPControl</a> *control)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_u_p_n_p_control_thread.html#acc42a0954f37bf112dc007a0271151ac">~UPNPControlThread</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_u_p_n_p_control_thread.html#a40f18f372042ea896ea1b84327baa715">stop</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_u_p_n_p_control_thread.html#a6b124158f9496b2da905c405aba7c321">wakeup</a> ()</td></tr>
<tr><td colspan="2"><h2>Static Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_u_p_n_p_control_thread.html#afd5cb7c165c3094a209905ec860f750b">UPNPCONTROL_DISCOVER_TIMEOUT</a> = 2000</td></tr>
<tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_u_p_n_p_control_thread.html#a560bf065dce3594ace3e94652c2d9520">run</a> ()</td></tr>
<tr><td colspan="2"><h2>Private Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_u_p_n_p_control_thread.html#a3412310f08298f82325f19e0bdc12981">configurePorts</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_u_p_n_p_control.html#a8a2e746cc9e991fec8b724f7a388b7c5">UPNPControl::UPNPError</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_u_p_n_p_control_thread.html#a840da06b35dcd6e583fa65490d88945a">initializeUPNP</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_u_p_n_p_control.html#a8a2e746cc9e991fec8b724f7a388b7c5">UPNPControl::UPNPError</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_u_p_n_p_control_thread.html#aaad47cb205ea1b45bbc267e97419e4c1">updatePort</a> (quint16 oldPort, quint16 newPort)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_u_p_n_p_control.html#a8a2e746cc9e991fec8b724f7a388b7c5">UPNPControl::UPNPError</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_u_p_n_p_control_thread.html#acc3fb03ce1dda74e428483bac5402e98">forwardPort</a> (quint16 port)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_u_p_n_p_control.html#a8a2e746cc9e991fec8b724f7a388b7c5">UPNPControl::UPNPError</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_u_p_n_p_control_thread.html#a2bfca0a2a124dd59bf0e956cfbd78236">disablePort</a> (quint16 port)</td></tr>
<tr><td colspan="2"><h2>Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">QTime&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_u_p_n_p_control_thread.html#a39fbdaefb515dcffe17e9ed438e55c7d">_upnpInitialized</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_u_p_n_p_control_thread.html#a7cbbca00753124e024d94dc36817efcc">_keepRunning</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_u_p_n_p_control.html">UPNPControl</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_u_p_n_p_control_thread.html#a7744c692a5de456ad50ee5398596904f">_control</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">QWaitCondition *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_u_p_n_p_control_thread.html#a8da604675c8f83bb128e99b1aa2bc01c">_waitCondition</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">QMutex *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_u_p_n_p_control_thread.html#a5fc252e710ed3fb0d3de063dbcb5db10">_waitMutex</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">quint16&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_u_p_n_p_control_thread.html#a0d64471e8e9215d1a615bfe19447f243">_dirPort</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">quint16&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_u_p_n_p_control_thread.html#a769087f3a8017571000cbedac9f60d83">_orPort</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="struct_u_p_n_p_urls.html">UPNPUrls</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_u_p_n_p_control_thread.html#a56621e32dadda028eed5d3e3eb1d81fb">urls</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="struct_i_g_ddatas.html">IGDdatas</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_u_p_n_p_control_thread.html#a3a51955cb4f8ba06586189d7d73949d3">data</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_u_p_n_p_control_thread.html#aba93cc78abe19f5b045784f1e8f28d66">lanaddr</a> [16]</td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>

<p>Definition at line <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00034">34</a> of file <a class="el" href="_u_p_n_p_control_thread_8h_source.html">UPNPControlThread.h</a>.</p>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="acad904d9162fd36ba3c8a70fe4da324c"></a><!-- doxytag: member="UPNPControlThread::UPNPControlThread" ref="acad904d9162fd36ba3c8a70fe4da324c" args="(UPNPControl *control)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">UPNPControlThread::UPNPControlThread </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_u_p_n_p_control.html">UPNPControl</a> *&nbsp;</td>
          <td class="paramname"> <em>control</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Constructor. <b>control</b> will be used for retrieving the desired port forwarding state. </p>

<p>Definition at line <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00034">34</a> of file <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html">UPNPControlThread.cpp</a>.</p>

<p>References <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00080">_control</a>, <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00083">_dirPort</a>, <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00079">_keepRunning</a>, <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00084">_orPort</a>, <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00078">_upnpInitialized</a>, <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00081">_waitCondition</a>, and <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00082">_waitMutex</a>.</p>

</div>
</div>
<a class="anchor" id="acc42a0954f37bf112dc007a0271151ac"></a><!-- doxytag: member="UPNPControlThread::~UPNPControlThread" ref="acc42a0954f37bf112dc007a0271151ac" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">UPNPControlThread::~UPNPControlThread </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Destructor. The UPnP control thread must be stopped prior to destroying this object.</p>
<p>Destructor. The UPnP control thread must be stopped prior to destroying this object. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="class_u_p_n_p_control_thread.html#a40f18f372042ea896ea1b84327baa715">stop()</a> </dd></dl>

<p>Definition at line <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00051">51</a> of file <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html">UPNPControlThread.cpp</a>.</p>

<p>References <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00081">_waitCondition</a>, and <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00082">_waitMutex</a>.</p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a3412310f08298f82325f19e0bdc12981"></a><!-- doxytag: member="UPNPControlThread::configurePorts" ref="a3412310f08298f82325f19e0bdc12981" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void UPNPControlThread::configurePorts </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Sets up port forwarding according the previously-configured desired state. The desired state is set using UPNPControl's setDesiredState() method.</p>
<p>Sets up port forwarding according the previously-configured desired state. The desired state is set using UPNPControl's setDesiredState() method. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="class_u_p_n_p_control.html#a32326c4e812a710434a747e89bdce54f">UPNPControl::setDesiredState</a> </dd></dl>

<p>Definition at line <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00100">100</a> of file <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html">UPNPControlThread.cpp</a>.</p>

<p>References <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00080">_control</a>, <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00083">_dirPort</a>, <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00084">_orPort</a>, <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00078">_upnpInitialized</a>, <a class="el" href="stringutil_8cpp_source.html#l00038">err()</a>, <a class="el" href="_u_p_n_p_control_8h_source.html#l00046">UPNPControl::ErrorState</a>, <a class="el" href="_u_p_n_p_control_8h_source.html#l00050">UPNPControl::ForwardingCompleteState</a>, <a class="el" href="_u_p_n_p_control_8cpp_source.html#l00079">UPNPControl::getDesiredState()</a>, <a class="el" href="_u_p_n_p_control_8cpp_source.html#l00032">UPNPControl::instance()</a>, <a class="el" href="_u_p_n_p_control_8cpp_source.html#l00103">UPNPControl::setError()</a>, <a class="el" href="_u_p_n_p_control_8cpp_source.html#l00115">UPNPControl::setState()</a>, <a class="el" href="_u_p_n_p_control_8h_source.html#l00034">UPNPControl::Success</a>, <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00200">updatePort()</a>, <a class="el" href="_u_p_n_p_control_8h_source.html#l00049">UPNPControl::UpdatingDirPortState</a>, <a class="el" href="_u_p_n_p_control_8h_source.html#l00048">UPNPControl::UpdatingORPortState</a>, and <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00028">UPNPCONTROL_REINIT_MSEC</a>.</p>

<p>Referenced by <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00061">run()</a>.</p>

</div>
</div>
<a class="anchor" id="a2bfca0a2a124dd59bf0e956cfbd78236"></a><!-- doxytag: member="UPNPControlThread::disablePort" ref="a2bfca0a2a124dd59bf0e956cfbd78236" args="(quint16 port)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_u_p_n_p_control.html#a8a2e746cc9e991fec8b724f7a388b7c5">UPNPControl::UPNPError</a> UPNPControlThread::disablePort </td>
          <td>(</td>
          <td class="paramtype">quint16&nbsp;</td>
          <td class="paramname"> <em>port</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Removes the port mapping for <b>port</b>. Returns 0 on success or non-zero on failure. </p>

<p>Definition at line <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00315">315</a> of file <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html">UPNPControlThread.cpp</a>.</p>

<p>References <a class="el" href="miniupnpc_8h_source.html#l00062">UPNPUrls::controlURL</a>, <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00088">data</a>, <a class="el" href="_u_p_n_p_control_8h_source.html#l00040">UPNPControl::DeletePortMappingFailed</a>, <a class="el" href="igd__desc__parse_8h_source.html#l00032">IGDdatas::first</a>, <a class="el" href="igd__desc__parse_8h_source.html#l00019">IGDdatas_service::servicetype</a>, <a class="el" href="_u_p_n_p_control_8h_source.html#l00034">UPNPControl::Success</a>, <a class="el" href="upnpcommands_8h.html#abcc1abad5aa7445126925c7849a1cd6e">UPNP_DeletePortMapping()</a>, <a class="el" href="upnpcommands_8h_source.html#l00014">UPNPCOMMAND_SUCCESS</a>, <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00087">urls</a>, <a class="el" href="_vidalia_8h_source.html#l00040">vInfo</a>, and <a class="el" href="_vidalia_8h_source.html#l00042">vWarn</a>.</p>

<p>Referenced by <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00200">updatePort()</a>.</p>

</div>
</div>
<a class="anchor" id="acc3fb03ce1dda74e428483bac5402e98"></a><!-- doxytag: member="UPNPControlThread::forwardPort" ref="acc3fb03ce1dda74e428483bac5402e98" args="(quint16 port)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_u_p_n_p_control.html#a8a2e746cc9e991fec8b724f7a388b7c5">UPNPControl::UPNPError</a> UPNPControlThread::forwardPort </td>
          <td>(</td>
          <td class="paramtype">quint16&nbsp;</td>
          <td class="paramname"> <em>port</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Adds a port forwarding mapping from external:<b>port</b> to internal:<b>port</b>. Returns 0 on success, or non-zero on failure. </p>

<p>Definition at line <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00271">271</a> of file <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html">UPNPControlThread.cpp</a>.</p>

<p>References <a class="el" href="_u_p_n_p_control_8h_source.html#l00038">UPNPControl::AddPortMappingFailed</a>, <a class="el" href="miniupnpc_8h_source.html#l00062">UPNPUrls::controlURL</a>, <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00088">data</a>, <a class="el" href="igd__desc__parse_8h_source.html#l00032">IGDdatas::first</a>, <a class="el" href="_u_p_n_p_control_8h_source.html#l00039">UPNPControl::GetPortMappingFailed</a>, <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00089">lanaddr</a>, <a class="el" href="igd__desc__parse_8h_source.html#l00019">IGDdatas_service::servicetype</a>, <a class="el" href="_u_p_n_p_control_8h_source.html#l00034">UPNPControl::Success</a>, <a class="el" href="upnpcommands_8h.html#a5776511b17d4539f5676bdf7d61c6db2">UPNP_AddPortMapping()</a>, <a class="el" href="upnpcommands_8h.html#ab076cbe64438b0d4888782fe74461ed5">UPNP_GetSpecificPortMappingEntry()</a>, <a class="el" href="upnpcommands_8h_source.html#l00014">UPNPCOMMAND_SUCCESS</a>, <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00087">urls</a>, <a class="el" href="_vidalia_8h_source.html#l00040">vInfo</a>, and <a class="el" href="_vidalia_8h_source.html#l00042">vWarn</a>.</p>

<p>Referenced by <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00200">updatePort()</a>.</p>

</div>
</div>
<a class="anchor" id="a840da06b35dcd6e583fa65490d88945a"></a><!-- doxytag: member="UPNPControlThread::initializeUPNP" ref="a840da06b35dcd6e583fa65490d88945a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_u_p_n_p_control.html#a8a2e746cc9e991fec8b724f7a388b7c5">UPNPControl::UPNPError</a> UPNPControlThread::initializeUPNP </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Discovers UPnP-enabled IGDs on the network. This method will block for UPNPCONTROL_DISCOVER_TIMEOUT milliseconds.</p>
<p>Discovers UPnP-enabled IGDs on the network. Based on <a href="http://miniupnp.free.fr/files/download.php?file=xchat-upnp20061022.patch">http://miniupnp.free.fr/files/download.php?file=xchat-upnp20061022.patch</a> This method will block for UPNPCONTROL_DISCOVER_TIMEOUT milliseconds. </p>

<p>Definition at line <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00240">240</a> of file <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html">UPNPControlThread.cpp</a>.</p>

<p>References <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00088">data</a>, <a class="el" href="_u_p_n_p_control_8h_source.html#l00047">UPNPControl::DiscoverState</a>, <a class="el" href="miniupnpc_8h.html#a8d32b719386ae11b74a3617d3dad7575">freeUPNPDevlist()</a>, <a class="el" href="_u_p_n_p_control_8cpp_source.html#l00032">UPNPControl::instance()</a>, <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00089">lanaddr</a>, <a class="el" href="_u_p_n_p_control_8h_source.html#l00035">UPNPControl::NoUPNPDevicesFound</a>, <a class="el" href="_u_p_n_p_control_8h_source.html#l00036">UPNPControl::NoValidIGDsFound</a>, <a class="el" href="_u_p_n_p_control_8cpp_source.html#l00115">UPNPControl::setState()</a>, <a class="el" href="_u_p_n_p_control_8h_source.html#l00034">UPNPControl::Success</a>, <a class="el" href="miniupnpc_8h.html#aced1c4968648b8b8eb8812ce194e5cab">UPNP_GetValidIGD()</a>, <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00041">UPNPCONTROL_DISCOVER_TIMEOUT</a>, <a class="el" href="miniupnpc_8h.html#a2bd7718c9a67a5938e11079f09e680c1">upnpDiscover()</a>, <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00087">urls</a>, <a class="el" href="_vidalia_8h_source.html#l00040">vInfo</a>, and <a class="el" href="_vidalia_8h_source.html#l00042">vWarn</a>.</p>

<p>Referenced by <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00200">updatePort()</a>.</p>

</div>
</div>
<a class="anchor" id="a560bf065dce3594ace3e94652c2d9520"></a><!-- doxytag: member="UPNPControlThread::run" ref="a560bf065dce3594ace3e94652c2d9520" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void UPNPControlThread::run </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Thread entry point. The thread has a main loop that periodically wakes up and updates the configured port mappings. Upon exiting, all port mappings will be removed. </p>

<p>Definition at line <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00061">61</a> of file <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html">UPNPControlThread.cpp</a>.</p>

<p>References <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00083">_dirPort</a>, <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00079">_keepRunning</a>, <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00084">_orPort</a>, <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00081">_waitCondition</a>, <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00082">_waitMutex</a>, <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00100">configurePorts()</a>, <a class="el" href="_u_p_n_p_control_8h_source.html#l00045">UPNPControl::IdleState</a>, <a class="el" href="_u_p_n_p_control_8cpp_source.html#l00032">UPNPControl::instance()</a>, <a class="el" href="_u_p_n_p_control_8cpp_source.html#l00115">UPNPControl::setState()</a>, <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00200">updatePort()</a>, and <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00029">UPNPCONTROL_MAX_WAIT_MSEC</a>.</p>

</div>
</div>
<a class="anchor" id="a40f18f372042ea896ea1b84327baa715"></a><!-- doxytag: member="UPNPControlThread::stop" ref="a40f18f372042ea896ea1b84327baa715" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void UPNPControlThread::stop </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Terminates the UPnP control thread's <a class="el" href="class_u_p_n_p_control_thread.html#a560bf065dce3594ace3e94652c2d9520">run()</a> loop.</p>
<p>Terminates the UPnP control thread's <a class="el" href="class_u_p_n_p_control_thread.html#a560bf065dce3594ace3e94652c2d9520">run()</a> loop. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="class_u_p_n_p_control_thread.html#a560bf065dce3594ace3e94652c2d9520">run()</a> </dd></dl>

<p>Definition at line <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00168">168</a> of file <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html">UPNPControlThread.cpp</a>.</p>

<p>References <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00079">_keepRunning</a>, <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00081">_waitCondition</a>, and <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00082">_waitMutex</a>.</p>

<p>Referenced by <a class="el" href="_u_p_n_p_control_8cpp_source.html#l00069">UPNPControl::cleanup()</a>.</p>

</div>
</div>
<a class="anchor" id="aaad47cb205ea1b45bbc267e97419e4c1"></a><!-- doxytag: member="UPNPControlThread::updatePort" ref="aaad47cb205ea1b45bbc267e97419e4c1" args="(quint16 oldPort, quint16 newPort)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_u_p_n_p_control.html#a8a2e746cc9e991fec8b724f7a388b7c5">UPNPControl::UPNPError</a> UPNPControlThread::updatePort </td>
          <td>(</td>
          <td class="paramtype">quint16&nbsp;</td>
          <td class="paramname"> <em>oldPort</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">quint16&nbsp;</td>
          <td class="paramname"> <em>newPort</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Updates the port mapping for <b>oldPort</b>, changing it to <b>newPort</b>. </p>

<p>Definition at line <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00200">200</a> of file <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html">UPNPControlThread.cpp</a>.</p>

<p>References <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00078">_upnpInitialized</a>, <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00315">disablePort()</a>, <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00271">forwardPort()</a>, <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00240">initializeUPNP()</a>, <a class="el" href="_u_p_n_p_control_8h_source.html#l00034">UPNPControl::Success</a>, <a class="el" href="_vidalia_8h_source.html#l00042">vWarn</a>, and <a class="el" href="_u_p_n_p_control_8h_source.html#l00037">UPNPControl::WSAStartupFailed</a>.</p>

<p>Referenced by <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00100">configurePorts()</a>, and <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00061">run()</a>.</p>

</div>
</div>
<a class="anchor" id="a6b124158f9496b2da905c405aba7c321"></a><!-- doxytag: member="UPNPControlThread::wakeup" ref="a6b124158f9496b2da905c405aba7c321" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void UPNPControlThread::wakeup </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Wakes up the UPnP control thread's <a class="el" href="class_u_p_n_p_control_thread.html#a560bf065dce3594ace3e94652c2d9520">run()</a> loop.</p>
<p>Wakes up the UPnP control thread's <a class="el" href="class_u_p_n_p_control_thread.html#a560bf065dce3594ace3e94652c2d9520">run()</a> loop. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="class_u_p_n_p_control_thread.html#a560bf065dce3594ace3e94652c2d9520">run()</a> </dd></dl>

<p>Definition at line <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00190">190</a> of file <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html">UPNPControlThread.cpp</a>.</p>

<p>References <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00081">_waitCondition</a>, and <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00082">_waitMutex</a>.</p>

<p>Referenced by <a class="el" href="_u_p_n_p_control_8cpp_source.html#l00090">UPNPControl::setDesiredState()</a>.</p>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a7744c692a5de456ad50ee5398596904f"></a><!-- doxytag: member="UPNPControlThread::_control" ref="a7744c692a5de456ad50ee5398596904f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_u_p_n_p_control.html">UPNPControl</a>* <a class="el" href="class_u_p_n_p_control_thread.html#a7744c692a5de456ad50ee5398596904f">UPNPControlThread::_control</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Stores desired UPnP state. </p>

<p>Definition at line <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00080">80</a> of file <a class="el" href="_u_p_n_p_control_thread_8h_source.html">UPNPControlThread.h</a>.</p>

<p>Referenced by <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00100">configurePorts()</a>, and <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00034">UPNPControlThread()</a>.</p>

</div>
</div>
<a class="anchor" id="a0d64471e8e9215d1a615bfe19447f243"></a><!-- doxytag: member="UPNPControlThread::_dirPort" ref="a0d64471e8e9215d1a615bfe19447f243" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">quint16 <a class="el" href="class_u_p_n_p_control_thread.html#a0d64471e8e9215d1a615bfe19447f243">UPNPControlThread::_dirPort</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Desired DirPort. </p>

<p>Definition at line <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00083">83</a> of file <a class="el" href="_u_p_n_p_control_thread_8h_source.html">UPNPControlThread.h</a>.</p>

<p>Referenced by <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00100">configurePorts()</a>, <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00061">run()</a>, and <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00034">UPNPControlThread()</a>.</p>

</div>
</div>
<a class="anchor" id="a7cbbca00753124e024d94dc36817efcc"></a><!-- doxytag: member="UPNPControlThread::_keepRunning" ref="a7cbbca00753124e024d94dc36817efcc" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="class_u_p_n_p_control_thread.html#a7cbbca00753124e024d94dc36817efcc">UPNPControlThread::_keepRunning</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>True if the control thread should keep running. </p>

<p>Definition at line <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00079">79</a> of file <a class="el" href="_u_p_n_p_control_thread_8h_source.html">UPNPControlThread.h</a>.</p>

<p>Referenced by <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00061">run()</a>, <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00168">stop()</a>, and <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00034">UPNPControlThread()</a>.</p>

</div>
</div>
<a class="anchor" id="a769087f3a8017571000cbedac9f60d83"></a><!-- doxytag: member="UPNPControlThread::_orPort" ref="a769087f3a8017571000cbedac9f60d83" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">quint16 <a class="el" href="class_u_p_n_p_control_thread.html#a769087f3a8017571000cbedac9f60d83">UPNPControlThread::_orPort</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Desired ORPort. </p>

<p>Definition at line <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00084">84</a> of file <a class="el" href="_u_p_n_p_control_thread_8h_source.html">UPNPControlThread.h</a>.</p>

<p>Referenced by <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00100">configurePorts()</a>, <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00061">run()</a>, and <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00034">UPNPControlThread()</a>.</p>

</div>
</div>
<a class="anchor" id="a39fbdaefb515dcffe17e9ed438e55c7d"></a><!-- doxytag: member="UPNPControlThread::_upnpInitialized" ref="a39fbdaefb515dcffe17e9ed438e55c7d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">QTime <a class="el" href="class_u_p_n_p_control_thread.html#a39fbdaefb515dcffe17e9ed438e55c7d">UPNPControlThread::_upnpInitialized</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Time at which the UPnP state was last set. </p>

<p>Definition at line <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00078">78</a> of file <a class="el" href="_u_p_n_p_control_thread_8h_source.html">UPNPControlThread.h</a>.</p>

<p>Referenced by <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00100">configurePorts()</a>, <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00200">updatePort()</a>, and <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00034">UPNPControlThread()</a>.</p>

</div>
</div>
<a class="anchor" id="a8da604675c8f83bb128e99b1aa2bc01c"></a><!-- doxytag: member="UPNPControlThread::_waitCondition" ref="a8da604675c8f83bb128e99b1aa2bc01c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">QWaitCondition* <a class="el" href="class_u_p_n_p_control_thread.html#a8da604675c8f83bb128e99b1aa2bc01c">UPNPControlThread::_waitCondition</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Used to wake up the control thread. </p>

<p>Definition at line <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00081">81</a> of file <a class="el" href="_u_p_n_p_control_thread_8h_source.html">UPNPControlThread.h</a>.</p>

<p>Referenced by <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00061">run()</a>, <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00168">stop()</a>, <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00034">UPNPControlThread()</a>, <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00190">wakeup()</a>, and <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00051">~UPNPControlThread()</a>.</p>

</div>
</div>
<a class="anchor" id="a5fc252e710ed3fb0d3de063dbcb5db10"></a><!-- doxytag: member="UPNPControlThread::_waitMutex" ref="a5fc252e710ed3fb0d3de063dbcb5db10" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">QMutex* <a class="el" href="class_u_p_n_p_control_thread.html#a5fc252e710ed3fb0d3de063dbcb5db10">UPNPControlThread::_waitMutex</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Mutex around shared variables. </p>

<p>Definition at line <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00082">82</a> of file <a class="el" href="_u_p_n_p_control_thread_8h_source.html">UPNPControlThread.h</a>.</p>

<p>Referenced by <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00061">run()</a>, <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00168">stop()</a>, <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00034">UPNPControlThread()</a>, <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00190">wakeup()</a>, and <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00051">~UPNPControlThread()</a>.</p>

</div>
</div>
<a class="anchor" id="a3a51955cb4f8ba06586189d7d73949d3"></a><!-- doxytag: member="UPNPControlThread::data" ref="a3a51955cb4f8ba06586189d7d73949d3" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="struct_i_g_ddatas.html">IGDdatas</a> <a class="el" href="class_u_p_n_p_control_thread.html#a3a51955cb4f8ba06586189d7d73949d3">UPNPControlThread::data</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00088">88</a> of file <a class="el" href="_u_p_n_p_control_thread_8h_source.html">UPNPControlThread.h</a>.</p>

<p>Referenced by <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00315">disablePort()</a>, <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00271">forwardPort()</a>, and <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00240">initializeUPNP()</a>.</p>

</div>
</div>
<a class="anchor" id="aba93cc78abe19f5b045784f1e8f28d66"></a><!-- doxytag: member="UPNPControlThread::lanaddr" ref="aba93cc78abe19f5b045784f1e8f28d66" args="[16]" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char <a class="el" href="class_u_p_n_p_control_thread.html#aba93cc78abe19f5b045784f1e8f28d66">UPNPControlThread::lanaddr</a>[16]<code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00089">89</a> of file <a class="el" href="_u_p_n_p_control_thread_8h_source.html">UPNPControlThread.h</a>.</p>

<p>Referenced by <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00271">forwardPort()</a>, and <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00240">initializeUPNP()</a>.</p>

</div>
</div>
<a class="anchor" id="afd5cb7c165c3094a209905ec860f750b"></a><!-- doxytag: member="UPNPControlThread::UPNPCONTROL_DISCOVER_TIMEOUT" ref="afd5cb7c165c3094a209905ec860f750b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const int <a class="el" href="class_u_p_n_p_control_thread.html#afd5cb7c165c3094a209905ec860f750b">UPNPControlThread::UPNPCONTROL_DISCOVER_TIMEOUT</a> = 2000<code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Specifies the number of milliseconds to wait for devices to respond when attempting to discover UPnP-enabled IGDs. </p>

<p>Definition at line <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00041">41</a> of file <a class="el" href="_u_p_n_p_control_thread_8h_source.html">UPNPControlThread.h</a>.</p>

<p>Referenced by <a class="el" href="_u_p_n_p_control_8cpp_source.html#l00161">UPNPControl::discoverTimeout()</a>, and <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00240">initializeUPNP()</a>.</p>

</div>
</div>
<a class="anchor" id="a56621e32dadda028eed5d3e3eb1d81fb"></a><!-- doxytag: member="UPNPControlThread::urls" ref="a56621e32dadda028eed5d3e3eb1d81fb" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="struct_u_p_n_p_urls.html">UPNPUrls</a> <a class="el" href="class_u_p_n_p_control_thread.html#a56621e32dadda028eed5d3e3eb1d81fb">UPNPControlThread::urls</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_u_p_n_p_control_thread_8h_source.html#l00087">87</a> of file <a class="el" href="_u_p_n_p_control_thread_8h_source.html">UPNPControlThread.h</a>.</p>

<p>Referenced by <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00315">disablePort()</a>, <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00271">forwardPort()</a>, and <a class="el" href="_u_p_n_p_control_thread_8cpp_source.html#l00240">initializeUPNP()</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="_u_p_n_p_control_thread_8h_source.html">UPNPControlThread.h</a></li>
<li><a class="el" href="_u_p_n_p_control_thread_8cpp_source.html">UPNPControlThread.cpp</a></li>
</ul>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Mon Aug 30 22:58:57 2010 for Vidalia 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>