<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>UPnP/DLNA plugin for VDR: cUPnPServer 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.5.8 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</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 class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</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>cUPnPServer Class Reference</h1><!-- doxytag: class="cUPnPServer" --><code>#include &lt;<a class="el" href="server_8h-source.html">server.h</a>&gt;</code>
<p>
<div class="dynheader">
Collaboration diagram for cUPnPServer:</div>
<div class="dynsection">
<p><center><img src="classcUPnPServer__coll__graph.png" border="0" usemap="#cUPnPServer__coll__map" alt="Collaboration graph"></center>
<map name="cUPnPServer__coll__map">
<area shape="rect" href="classcContentDirectory.html" title="{cContentDirectory\n|&#45; mMediaDatabase\l|+ cContentDirectory()\l+ ~cContentDirectory()\l+ subscribe()\l+ execute()\l+ setError()\l&#45; Action()\l&#45; getSearchCapabilities()\l&#45; getSortCapabilities()\l&#45; getSystemUpdateID()\l&#45; browse()\l}" alt="" coords="275,1909,437,2133"><area shape="rect" href="classcUpnpService.html" title="{cUpnpService\n|# mDeviceHandle\l|+ ~cUpnpService()\l+ subscribe()\l+ execute()\l# setError()\l# parseIntegerValue()\l# parseStringValue()\l&#45; cUpnpService()\l}" alt="" coords="229,1493,373,1669"><area shape="rect" href="classcConnectionManager.html" title="{cConnectionManager\n|&#45; mDefaultConnection\l&#45; mVirtualConnections\l&#45; mSupportedProtocols\l|+ cConnectionManager()\l+ ~cConnectionManager()\l+ subscribe()\l+ execute()\l+ setError()\l&#45; setError()\l&#45; getProtocolInfo()\l&#45; getCurrentConnectionIDs()\l&#45; getCurrentConnectionInfo()\l&#45; prepareForConnection()\l&#45; connectionComplete()\l&#45; createVirtualConnection()\l&#45; destroyVirtualConnection()\l&#45; getConnectionIDsCVS()\l}" alt="" coords="67,1861,251,2181"><area shape="rect" href="classcMediaDatabase.html" title="{cMediaDatabase\n|&#45; mSystemUpdateID\l&#45; mFactory\l&#45; mObjects\l&#45; mDatabase\l&#45; mLastInsertObjectID\l|+ getSystemUpdateID()\l+ getContainerUpdateIDs()\l+ cMediaDatabase()\l+ ~cMediaDatabase()\l+ addFastFind()\l+ getObjectByFastFind()\l+ getObjectByID()\l+ browse()\l+ search()\l&#45; getNextObjectID()\l&#45; cacheObject()\l&#45; prepareDatabase()\l&#45; loadChannels()\l&#45; loadRecordings()\l&#45; updateChannelEPG()\l&#45; updateRecordings()\l&#45; init()\l&#45; updateSystemID()\l&#45; Action()\l}" alt="" coords="397,1365,573,1797"><area shape="rect" href="classcUPnPObjectFactory.html" title="{cUPnPObjectFactory\n|&#45; mDatabase\l&#45; mMediators\l&#45; mInstance\l|+ registerMediator()\l+ unregisterMediator()\l+ createObject()\l+ getObject()\l+ saveObject()\l+ deleteObject()\l+ clearObject()\l+ getInstance()\l&#45; findMediatorByID()\l&#45; findMediatorByClass()\l&#45; cUPnPObjectFactory()\l}" alt="" coords="405,973,565,1245"><area shape="rect" href="classcSQLiteDatabase.html" title="{cSQLiteDatabase\n|&#45; mAutoCommit\l&#45; mActiveTransaction\l&#45; mLastRow\l&#45; mRows\l&#45; mDatabase\l&#45; mInstance\l|+ ~cSQLiteDatabase()\l+ getResultCount()\l+ getLastInsertRowID()\l+ getResultRows()\l+ execStatement()\l+ startTransaction()\l+ commitTransaction()\l+ rollbackTransaction()\l+ setAutoCommit()\l+ sprintf()\l+ getInstance()\l&#45; cSQLiteDatabase()\l&#45; initialize()\l&#45; initializeTables()\l&#45; initializeTriggers()\l&#45; exec()\l&#45; getResultRow()\l}" alt="" coords="291,437,445,853"><area shape="rect" href="classcRows.html" title="{cRows\n|&#45; mLastRow\l|+ ~cRows()\l+ fetchRow()\l&#45; cRows()\l}" alt="" coords="432,261,528,373"><area shape="rect" href="classcRow.html" title="{cRow\n|&#45; currentCol\l&#45; ColCount\l&#45; Columns\l&#45; Values\l|+ ~cRow()\l+ Count()\l+ fetchColumn()\l+ fetchColumn()\l&#45; cRow()\l}" alt="" coords="333,5,448,197"><area shape="rect" href="structcUPnPObjectID.html" title="{cUPnPObjectID\n|+ _ID\l|+ cUPnPObjectID()\l+ cUPnPObjectID()\l+ cUPnPObjectID()\l+ operator=()\l+ operator=()\l+ operator=()\l+ operator++()\l+ operator++()\l+ operator&#45;&#45;()\l+ operator&#45;&#45;()\l+ operator!=()\l+ operator==()\l+ operator!=()\l+ operator==()\l+ operator!=()\l+ operator==()\l+ operator unsigned int()\l+ operator int()\l+ operator long()\l+ operator*()\l}" alt="" coords="675,917,837,1301"><area shape="rect" href="classcUPnPWebServer.html" title="{cUPnPWebServer\n|&#45; mRootdir\l&#45; mInstance\l&#45; mVirtualDirCallbacks\l|+ init()\l+ uninit()\l+ ~cUPnPWebServer()\l+ getInstance()\l+ getInfo()\l+ open()\l+ read()\l+ write()\l+ seek()\l+ close()\l&#45; cUPnPWebServer()\l}" alt="" coords="611,1885,765,2157"><area shape="rect" href="classcVirtualConnection.html" title="{cVirtualConnection\n|&#45; mRemoteProtocolInfo\l&#45; mRemoteConnectionManager\l&#45; mDirection\l&#45; mRemoteConnectionID\l&#45; mConnectionID\l&#45; mAVTransportID\l&#45; mRcsID\l&#45; mStatus\l|&#45; cVirtualConnection()\l&#45; getStatusString()\l&#45; getDirectionString()\l&#45; getDirection()\l&#45; getConnectionStatus()\l}" alt="" coords="5,1453,205,1709"></map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>

<p>
<a href="classcUPnPServer-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcUPnPServer.html#e0277b2231f10e66a5c6ce9acb42fcd0">cUPnPServer</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcUPnPServer.html#8eb136050f3f6c2edb7acbf5d690723d">~cUPnPServer</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcUPnPServer.html#4935ab1fbcc03279193e0f9fa675fb8b">enable</a> (bool enabled)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcUPnPServer.html#811d90c5aadc75bc48670757def1c21e">start</a> (void)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcUPnPServer.html#9dd50cfea9042d49ef58b99b44c0c5af">restart</a> (void)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcUPnPServer.html#c5ecc7ef5d42db1fa136ff00b24d1289">stop</a> (void)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcUPnPServer.html#783f27c1997257539ccb8ff7ade815be">autoDetectSettings</a> (void)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">sockaddr_in *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcUPnPServer.html#f938922eff48ca1035e88677e095c0c4">getServerAddress</a> (void)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcUPnPServer.html#e28dd555ac861850c9a2bbd22d9a7d3a">getInterface</a> (void) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcUPnPServer.html#77494ce55a93601110bd4ffce8559b23">setServerPort</a> (unsigned short port)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcUPnPServer.html#81cf9d85c09093094febe6966a568702">setInterface</a> (const char *Interface)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcUPnPServer.html#ebebc8d232cf4ad04e5f72f5ab763db6">setAddress</a> (const char *Address)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcUPnPServer.html#7c91df7310a99786a0a126497299d030">setAutoDetection</a> (bool enable)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcUPnPServer.html#fbaaebd4496e98106c2d9be4c2512a66">isEnabled</a> (void) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcUPnPServer.html#af5358b41e19ba2917371c2d118d0145">isRunning</a> (void) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcUPnPServer.html#389ffe474f61ec18b6f99dd02a9c31e4">isAutoDetectionEnabled</a> ()</td></tr>

<tr><td colspan="2"><br><h2>Friends</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d07aa2117373999585d4e5530ef02918"></a><!-- doxytag: member="cUPnPServer::cPluginUpnp" ref="d07aa2117373999585d4e5530ef02918" args="" -->
class&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcUPnPServer.html#d07aa2117373999585d4e5530ef02918">cPluginUpnp</a></td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
The UPnP Server<p>
This is the core of the UPnP server. This handles all the components which are needed for a UPnP media server. Incoming messages are passed through it and it determines what to do. <hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="e0277b2231f10e66a5c6ce9acb42fcd0"></a><!-- doxytag: member="cUPnPServer::cUPnPServer" ref="e0277b2231f10e66a5c6ce9acb42fcd0" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cUPnPServer::cUPnPServer           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Constructor<p>
This will create a new server and initializes the main functionalities The server has to be started manually by invoking <a class="el" href="classcUPnPServer.html#811d90c5aadc75bc48670757def1c21e">cUPnPServer::start()</a>. 
</div>
</div><p>
<a class="anchor" name="8eb136050f3f6c2edb7acbf5d690723d"></a><!-- doxytag: member="cUPnPServer::~cUPnPServer" ref="8eb136050f3f6c2edb7acbf5d690723d" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cUPnPServer::~cUPnPServer           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Destructor<p>
This will destroy the server object. Open ports and connections will be closed. 
</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="783f27c1997257539ccb8ff7ade815be"></a><!-- doxytag: member="cUPnPServer::autoDetectSettings" ref="783f27c1997257539ccb8ff7ade815be" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool cUPnPServer::autoDetectSettings           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Automatically detect settings<p>
This will automatically detect the network settings if the autodetection is turned on.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns<ul>
<li><b><code>true</code>,</b> if autoDetection was successful</li><li><b><code>false</code>,</b> otherwise </li></ul>
</dd></dl>

</div>
</div><p>
<a class="anchor" name="4935ab1fbcc03279193e0f9fa675fb8b"></a><!-- doxytag: member="cUPnPServer::enable" ref="4935ab1fbcc03279193e0f9fa675fb8b" args="(bool enabled)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cUPnPServer::enable           </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>enabled</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Enable the server<p>
This switch indicates if the server is startable or not<p>
If it is set to false, any invocation of <a class="el" href="classcUPnPServer.html#811d90c5aadc75bc48670757def1c21e">start()</a> will do nothing.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>enabled</em>&nbsp;</td><td>if <b><code>true</code>,</b> the server will be enabled. If <b><code>false</code> it</b> is disabled. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="e28dd555ac861850c9a2bbd22d9a7d3a"></a><!-- doxytag: member="cUPnPServer::getInterface" ref="e28dd555ac861850c9a2bbd22d9a7d3a" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* cUPnPServer::getInterface           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the interface the server listens to<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the network interface </dd></dl>

</div>
</div><p>
<a class="anchor" name="f938922eff48ca1035e88677e095c0c4"></a><!-- doxytag: member="cUPnPServer::getServerAddress" ref="f938922eff48ca1035e88677e095c0c4" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">sockaddr_in * cUPnPServer::getServerAddress           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the server address<p>
Returns a server address structure including IP address and port<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The server socket address </dd></dl>

</div>
</div><p>
<a class="anchor" name="389ffe474f61ec18b6f99dd02a9c31e4"></a><!-- doxytag: member="cUPnPServer::isAutoDetectionEnabled" ref="389ffe474f61ec18b6f99dd02a9c31e4" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool cUPnPServer::isAutoDetectionEnabled           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Is auto detection enabled or not<p>
Returns true or false if auto detection is enabled or not<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns<ul>
<li><b><code>true</code>,</b> if autodetection is enabled</li><li><b><code>false</code>,</b> otherwise </li></ul>
</dd></dl>

</div>
</div><p>
<a class="anchor" name="fbaaebd4496e98106c2d9be4c2512a66"></a><!-- doxytag: member="cUPnPServer::isEnabled" ref="fbaaebd4496e98106c2d9be4c2512a66" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool cUPnPServer::isEnabled           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks if the server is enabled<p>
This indicates if the server is currently enabled.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns<ul>
<li><b><code>true</code>,</b> if the server is enabled</li><li><b><code>false</code>,</b> otherwise </li></ul>
</dd></dl>

</div>
</div><p>
<a class="anchor" name="af5358b41e19ba2917371c2d118d0145"></a><!-- doxytag: member="cUPnPServer::isRunning" ref="af5358b41e19ba2917371c2d118d0145" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool cUPnPServer::isRunning           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks if the server is running<p>
If the server is enabled, this indicates if it is running.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns<ul>
<li><b><code>true</code> if</b> the server is running</li><li><b><code>false</code>,</b> otherwise </li></ul>
</dd></dl>

</div>
</div><p>
<a class="anchor" name="9dd50cfea9042d49ef58b99b44c0c5af"></a><!-- doxytag: member="cUPnPServer::restart" ref="9dd50cfea9042d49ef58b99b44c0c5af" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool cUPnPServer::restart           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Restart the server<p>
When the server is not operating properly it can be restarted. It will stop the server functionalities, clear everything and start it again.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns<ul>
<li><b><code>true</code>,</b> when the server restarted successfully</li><li><b><code>false</code>,</b> otherwise </li></ul>
</dd></dl>

</div>
</div><p>
<a class="anchor" name="ebebc8d232cf4ad04e5f72f5ab763db6"></a><!-- doxytag: member="cUPnPServer::setAddress" ref="ebebc8d232cf4ad04e5f72f5ab763db6" args="(const char *Address)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool cUPnPServer::setAddress           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>Address</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the server address<p>
Specifies the servers IP address. The server needs to restart when the IP is changed. However, it's not possible to detect changes through the system.<p>
This method should only be used in cases of fixed IP addresses for example when no DHCP server is available.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>Address</em>&nbsp;</td><td>The address of the server </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns<ul>
<li><b><code>true</code>,</b> if the new server address is set</li><li><b><code>false</code>,</b> otherwise </li></ul>
</dd></dl>

</div>
</div><p>
<a class="anchor" name="7c91df7310a99786a0a126497299d030"></a><!-- doxytag: member="cUPnPServer::setAutoDetection" ref="7c91df7310a99786a0a126497299d030" args="(bool enable)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool cUPnPServer::setAutoDetection           </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>enable</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Enables oder Disables auto detection mode<p>
If this is set to true, the setup will get it's information via auto detection<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>enable</em>&nbsp;</td><td><b><code>true</code> enables</b> and <b><code>false</code> disables</b> the auto detection </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns<ul>
<li><b><code>true</code>,</b> if the new server address is set</li><li><b><code>false</code>,</b> otherwise </li></ul>
</dd></dl>

</div>
</div><p>
<a class="anchor" name="81cf9d85c09093094febe6966a568702"></a><!-- doxytag: member="cUPnPServer::setInterface" ref="81cf9d85c09093094febe6966a568702" args="(const char *Interface)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool cUPnPServer::setInterface           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>Interface</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The Interface to listen on<p>
Sets the listener interface, for instance 'eth1' or 'wlan0'<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>Interface</em>&nbsp;</td><td>The interface of the server </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns<ul>
<li><b><code>true</code>,</b> if the new server address is set</li><li><b><code>false</code>,</b> otherwise </li></ul>
</dd></dl>

</div>
</div><p>
<a class="anchor" name="77494ce55a93601110bd4ffce8559b23"></a><!-- doxytag: member="cUPnPServer::setServerPort" ref="77494ce55a93601110bd4ffce8559b23" args="(unsigned short port)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool cUPnPServer::setServerPort           </td>
          <td>(</td>
          <td class="paramtype">unsigned short&nbsp;</td>
          <td class="paramname"> <em>port</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the server port<p>
The port must be in the scope of user definied ports (49152 - 65535). If the port is 0, it is autoassigned. You can retrieve the actual port by calling <a class="el" href="classcUPnPServer.html#f938922eff48ca1035e88677e095c0c4">getServerAddress()</a>, which will give you a structure with the port in it.<p>
The server must be restarted if the IP or port changes.<p>
Returns 1 when the port is valid, 0 otherwise<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>port</em>&nbsp;</td><td>The port of the server </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns<ul>
<li><b><code>true</code>,</b> if the new server port is set</li><li><b><code>false</code>,</b> otherwise </li></ul>
</dd></dl>

</div>
</div><p>
<a class="anchor" name="811d90c5aadc75bc48670757def1c21e"></a><!-- doxytag: member="cUPnPServer::start" ref="811d90c5aadc75bc48670757def1c21e" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool cUPnPServer::start           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Start the UPnP server<p>
This will start the UPnP server activities as a background task.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns<ul>
<li><b><code>true</code>,</b> when the server started successfully</li><li><b><code>false</code>,</b> otherwise </li></ul>
</dd></dl>

</div>
</div><p>
<a class="anchor" name="c5ecc7ef5d42db1fa136ff00b24d1289"></a><!-- doxytag: member="cUPnPServer::stop" ref="c5ecc7ef5d42db1fa136ff00b24d1289" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cUPnPServer::stop           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Stop the server<p>
This will stop the server. This means that open connections to any clients and open ports will be closed. 
</div>
</div><p>
<hr>The documentation for this class was generated from the following files:<ul>
<li>server/<a class="el" href="server_8h-source.html">server.h</a><li>server/server.cpp</ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun Nov 8 15:44:09 2009 for UPnP/DLNA plugin for VDR by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
</body>
</html>