Sophie

Sophie

distrib > CentOS > 5 > x86_64 > by-pkgid > f89abdeb016114b348a5c554d8214329 > files > 352

kdelibs-apidocs-3.5.4-30.el5.centos.x86_64.rpm

<?xml version="1.0" encoding="UTF-8"?>
<!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" lang="en_US" xml:lang="en_US">

<head>
  <title>dnssd: DNSSD::ServiceBrowser Class Reference (dnssd)</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

  <meta http-equiv="Content-Style-Type" content="text/css" />

  <meta http-equiv="pics-label" content='(pics-1.1 "http://www.icra.org/ratingsv02.html" comment "ICRAonline DE v2.0" l gen true for "http://www.kde.org"  r (nz 1 vz 1 lz 1 oz 1 cb 1) "http://www.rsac.org/ratingsv01.html" l gen true for "http://www.kde.org"  r (n 0 s 0 v 0 l 0))' />

  <meta name="trademark" content="KDE e.V." />
  <meta name="description" content="K Desktop Environment Homepage, KDE.org" />
  <meta name="MSSmartTagsPreventParsing" content="true" />
  <meta name="robots" content="all" />

  <link rel="shortcut icon" href="../../favicon.ico" />

<link rel="stylesheet" media="screen" type="text/css" title="APIDOX" href="doxygen.css" />



</head>

<body>

<div id="nav_header_top" align="right">
  <a href="#content" class="doNotDisplay" accesskey="2">Skip to main content ::</a>

  <a href="../.."><img id="nav_header_logo" alt="Home" align="left" src="../../kde_gear_64.png" border="0" /></a>
  <span class="doNotDisplay">::</span>

  <div id="nav_header_title" align="left">KDE API Reference</div>


</div>

<div id="nav_header_bottom" align="right">
  <span class="doNotDisplay">:: <a href="#navigation" accesskey="5">Skip to Link Menu</a><br/></span>
  <div id="nav_header_bottom_right" style="text-align: left;">
/ <a href="../..">API Reference</a>
 / <a href=".">dnssd</a>
  </div>
</div>


<table id="main" border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
      <td valign="top" class="menuheader" height="0"></td>

  <td id="contentcolumn" valign="top" rowspan="2" >
    <div id="content" style="padding-top: 0px;"><div style="width:100%; margin: 0px; padding: 0px;">
    <a name="content"></a>


<!-- Generated by Doxygen 1.4.7 -->
<div class="nav">
<a class="el" href="namespaceDNSSD.html">DNSSD</a>::<a class="el" href="classDNSSD_1_1ServiceBrowser.html">ServiceBrowser</a></div>
<h1>DNSSD::ServiceBrowser Class Reference</h1><!-- doxytag: class="DNSSD::ServiceBrowser" --><!-- doxytag: inherits="QObject" --><code>#include &lt;<a class="el" href="servicebrowser_8h-source.html">servicebrowser.h</a>&gt;</code>
<p>
<p>Inheritance diagram for DNSSD::ServiceBrowser:
<p><center><img src="classDNSSD_1_1ServiceBrowser.png" usemap="#DNSSD::ServiceBrowser_map" border="0" alt=""></center>
<map name="DNSSD::ServiceBrowser_map">
<area doxygen="qt.tag:" href="qobject.html" alt="QObject" shape="rect" coords="0,0,152,24">
</map>
<a href="classDNSSD_1_1ServiceBrowser-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
Most important class for applications that want to discover specific services on network.Browsing for specific type of services or all available service types. 
<p>
Suppose that you need list of web servers running. Example:<p>
<div class="fragment"><pre class="fragment"><a class="code" href="classDNSSD_1_1ServiceBrowser.html">DNSSD::ServiceBrowser</a>* browser = <span class="keyword">new</span> <a class="code" href="classDNSSD_1_1ServiceBrowser.html">DNSSD::ServiceBrowser</a>(<span class="stringliteral">"_http._tcp"</span>);
<a class="codeRef" doxygen="qt.tag:" href="qobject.html#connect">connect</a>(browser,SIGNAL(<a class="code" href="classDNSSD_1_1ServiceBrowser.html#0ec829e711803a1581cbf9bfe3a1c74e">serviceAdded</a>(<a class="code" href="classDNSSD_1_1RemoteService.html#69b7cb209efdfc9d6a292a8152134577">RemoteService::Ptr</a>)),<span class="keyword">this</span>,SLOT(addService(<a class="code" href="classDNSSD_1_1RemoteService.html#69b7cb209efdfc9d6a292a8152134577">RemoteService::Ptr</a>)));
<a class="codeRef" doxygen="qt.tag:" href="qobject.html#connect">connect</a>(browser,SIGNAL(<a class="code" href="classDNSSD_1_1ServiceBrowser.html#55ffe360c6e153270c00ed812d7dd21c">serviceRemoved</a>(<a class="code" href="classDNSSD_1_1RemoteService.html#69b7cb209efdfc9d6a292a8152134577">RemoteService::Ptr</a>)),<span class="keyword">this</span>,SLOT(delService(<a class="code" href="classDNSSD_1_1RemoteService.html#69b7cb209efdfc9d6a292a8152134577">RemoteService::Ptr</a>)));
browser-&gt;<a class="code" href="classDNSSD_1_1ServiceBrowser.html#0cac558b7221b7be7f5ce2c92ce9cf06">startBrowse</a>();
</pre></div><p>
In above example addService will be called for every web server already running or just appearing on network and delService will be called when server is stopped. Because no <a class="el" href="classDNSSD_1_1DomainBrowser.html">DomainBrowser</a> was passed to constructor, domains configured by user will be searched.<p>
<dl compact><dt><b>Author:</b></dt><dd>Jakub Stachowski </dd></dl>

<p>

<p>
Definition at line <a class="el" href="servicebrowser_8h-source.html#l00054">54</a> of file <a class="el" href="servicebrowser_8h-source.html">servicebrowser.h</a>.<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="10145786fee881ef381335e338142cc8c7a62ed407d796c309a095f19152f10c"></a><!-- doxytag: member="DNSSD::ServiceBrowser::AutoDelete" ref="10145786fee881ef381335e338142cc8c7a62ed407d796c309a095f19152f10c" args="" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><b>AutoDelete</b> = 1</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="10145786fee881ef381335e338142cc8bc94d7a05d8d5f2aff2a0ae6f05f595e"></a><!-- doxytag: member="DNSSD::ServiceBrowser::AutoResolve" ref="10145786fee881ef381335e338142cc8bc94d7a05d8d5f2aff2a0ae6f05f595e" args="" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><b>AutoResolve</b> = 2</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e9f85071521523b84724e35008de67f3994c5c1da977bb5f1f939add9aadfaab"></a><!-- doxytag: member="DNSSD::ServiceBrowser::Working" ref="e9f85071521523b84724e35008de67f3994c5c1da977bb5f1f939add9aadfaab" args="" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><b>Working</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e9f85071521523b84724e35008de67f31889d103f90cfad864fb66abb2d78928"></a><!-- doxytag: member="DNSSD::ServiceBrowser::Stopped" ref="e9f85071521523b84724e35008de67f31889d103f90cfad864fb66abb2d78928" args="" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><b>Stopped</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e9f85071521523b84724e35008de67f3aa9442694d8a03742ed376a4394cc70d"></a><!-- doxytag: member="DNSSD::ServiceBrowser::Unsupported" ref="e9f85071521523b84724e35008de67f3aa9442694d8a03742ed376a4394cc70d" args="" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><b>Unsupported</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNSSD_1_1ServiceBrowser.html#10145786fee881ef381335e338142cc8">Flags</a> { <b>AutoDelete</b> = 1, 
<b>AutoResolve</b> =  2
 }</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNSSD_1_1ServiceBrowser.html#e9f85071521523b84724e35008de67f3">State</a> { <b>Working</b>, 
<b>Stopped</b>, 
<b>Unsupported</b>
 }</td></tr>

<tr><td colspan="2"><br><h2>Public Slots</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNSSD_1_1ServiceBrowser.html#de4cc268e006a114ac19ae5b1d9eb671">removeDomain</a> (const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;domain)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNSSD_1_1ServiceBrowser.html#e67a3a3affccd42836984a781f471677">addDomain</a> (const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;domain)</td></tr>

<tr><td colspan="2"><br><h2>Signals</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNSSD_1_1ServiceBrowser.html#0ec829e711803a1581cbf9bfe3a1c74e">serviceAdded</a> (<a class="el" href="classDNSSD_1_1RemoteService.html#69b7cb209efdfc9d6a292a8152134577">DNSSD::RemoteService::Ptr</a>)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNSSD_1_1ServiceBrowser.html#55ffe360c6e153270c00ed812d7dd21c">serviceRemoved</a> (<a class="el" href="classDNSSD_1_1RemoteService.html#69b7cb209efdfc9d6a292a8152134577">DNSSD::RemoteService::Ptr</a>)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNSSD_1_1ServiceBrowser.html#3c84a5bef984db1d92ba7c9f01ade76d">finished</a> ()</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="classDNSSD_1_1ServiceBrowser.html#1c261a2da3197e0348ecba0001f9eca9">ServiceBrowser</a> (const <a class="elRef" doxygen="qt.tag:" href="qstringlist.html">QStringList</a> &amp;types, <a class="el" href="classDNSSD_1_1DomainBrowser.html">DomainBrowser</a> *domains, int flags)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNSSD_1_1ServiceBrowser.html#07f506cac5cb4029692cb2f88492ec80">ServiceBrowser</a> (const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;type, <a class="el" href="classDNSSD_1_1DomainBrowser.html">DomainBrowser</a> *domains=0, bool autoResolve=false)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNSSD_1_1ServiceBrowser.html#3287b05ec16dc8f555bd9e6ff75a41b9">ServiceBrowser</a> (const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;type, const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;domain, int flags)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNSSD_1_1ServiceBrowser.html#b3a99e75094f374989ab23ba40de4b07">ServiceBrowser</a> (const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;type, const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;domain, bool autoResolve=false)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7839c16fcc00fbb2f9597ee46d7e7388"></a><!-- doxytag: member="DNSSD::ServiceBrowser::~ServiceBrowser" ref="7839c16fcc00fbb2f9597ee46d7e7388" args="()" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNSSD_1_1ServiceBrowser.html#7839c16fcc00fbb2f9597ee46d7e7388">~ServiceBrowser</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="elRef" doxygen="qt.tag:" href="qvaluelist.html">QValueList</a>&lt; <a class="el" href="classDNSSD_1_1RemoteService.html#69b7cb209efdfc9d6a292a8152134577">RemoteService::Ptr</a> &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNSSD_1_1ServiceBrowser.html#f449530c4386c14f84ae6ce78856b6ac">services</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNSSD_1_1ServiceBrowser.html#0cac558b7221b7be7f5ce2c92ce9cf06">startBrowse</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classDNSSD_1_1DomainBrowser.html">DomainBrowser</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNSSD_1_1ServiceBrowser.html#f601e99c0c5e3c9da10379aac901f09f">browsedDomains</a> () const </td></tr>

<tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static const <a class="el" href="classDNSSD_1_1ServiceBrowser.html#e9f85071521523b84724e35008de67f3">State</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNSSD_1_1ServiceBrowser.html#f12dec77721d32b2722e08f8855f4386">isAvailable</a> ()</td></tr>

<tr><td colspan="2"><br><h2>Static Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNSSD_1_1ServiceBrowser.html#8160b0aa878a7df249d19ef039b0b443">AllServices</a> = &quot;_services._dns-sd._udp&quot;</td></tr>

<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7c42a6eeca5160ece54de1007129577f"></a><!-- doxytag: member="DNSSD::ServiceBrowser::virtual_hook" ref="7c42a6eeca5160ece54de1007129577f" args="(int, void *)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNSSD_1_1ServiceBrowser.html#7c42a6eeca5160ece54de1007129577f">virtual_hook</a> (int, void *)</td></tr>

</table>
<hr><h2>Member Enumeration Documentation</h2>
<a class="anchor" name="10145786fee881ef381335e338142cc8"></a><!-- doxytag: member="DNSSD::ServiceBrowser::Flags" ref="10145786fee881ef381335e338142cc8" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classDNSSD_1_1ServiceBrowser.html#10145786fee881ef381335e338142cc8">DNSSD::ServiceBrowser::Flags</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<ul>
<li>AutoDelete - <a class="el" href="classDNSSD_1_1DomainBrowser.html">DomainBrowser</a> object passes in constructor should be deleted when <a class="el" href="classDNSSD_1_1ServiceBrowser.html">ServiceBrowser</a> is deleted </li>
<li>AutoResolve - after disovering new service it will be resolved and then reported with <a class="el" href="classDNSSD_1_1ServiceBrowser.html#0ec829e711803a1581cbf9bfe3a1c74e">serviceAdded()</a> signal. It raises network usage by resolving all services, so use it only when necessary. </li>
</ul>

<p>
Definition at line <a class="el" href="servicebrowser_8h-source.html#l00064">64</a> of file <a class="el" href="servicebrowser_8h-source.html">servicebrowser.h</a>.
</div>
</div><p>
<a class="anchor" name="e9f85071521523b84724e35008de67f3"></a><!-- doxytag: member="DNSSD::ServiceBrowser::State" ref="e9f85071521523b84724e35008de67f3" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classDNSSD_1_1ServiceBrowser.html#e9f85071521523b84724e35008de67f3">DNSSD::ServiceBrowser::State</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Availability of DNS-SD services. 
<p>
<ul>
<li>Working - available </li>
<li>Stopped - not available because mdnsd daemon is not running. </li>
<li>Unsupported - not available because KDE was compiled without DNS-SD support </li>
</ul>

<p>
Definition at line <a class="el" href="servicebrowser_8h-source.html#l00075">75</a> of file <a class="el" href="servicebrowser_8h-source.html">servicebrowser.h</a>.
</div>
</div><p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="1c261a2da3197e0348ecba0001f9eca9"></a><!-- doxytag: member="DNSSD::ServiceBrowser::ServiceBrowser" ref="1c261a2da3197e0348ecba0001f9eca9" args="(const QStringList &amp;types, DomainBrowser *domains, int flags)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DNSSD::ServiceBrowser::ServiceBrowser           </td>
          <td>(</td>
          <td class="paramtype">const <a class="elRef" doxygen="qt.tag:" href="qstringlist.html">QStringList</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>types</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classDNSSD_1_1DomainBrowser.html">DomainBrowser</a> *&nbsp;</td>
          <td class="paramname"> <em>domains</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>flags</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<a class="el" href="classDNSSD_1_1ServiceBrowser.html">ServiceBrowser</a> constructor. 
<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>types</em>&nbsp;</td><td>List of service types to browse for (example: "_http._tcp"). Can also be DNSSD::ServicesBrowser::AllServices to specify "metaquery" for all service types present on network </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>domains</em>&nbsp;</td><td><a class="el" href="classDNSSD_1_1DomainBrowser.html">DomainBrowser</a> object used to specify domains to browse. You do not have to connect its domainAdded() signal - it will be done automatically. You can left this parameter as NULL for default domains. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>flags</em>&nbsp;</td><td>One or more values from <a class="el" href="classDNSSD_1_1ServiceBrowser.html#10145786fee881ef381335e338142cc8">Flags</a></td></tr>
  </table>
</dl>
<dl compact><dt><b>Since:</b></dt><dd>3.5 </dd></dl>
<dl compact><dt><b><a class="el" href="todo.html#_todo000001">Todo:</a></b></dt><dd>KDE4: set default values for domains and flags </dd></dl>

<p>
Definition at line <a class="el" href="servicebrowser_8cpp-source.html#l00060">60</a> of file <a class="el" href="servicebrowser_8cpp-source.html">servicebrowser.cpp</a>.
</div>
</div><p>
<a class="anchor" name="07f506cac5cb4029692cb2f88492ec80"></a><!-- doxytag: member="DNSSD::ServiceBrowser::ServiceBrowser" ref="07f506cac5cb4029692cb2f88492ec80" args="(const QString &amp;type, DomainBrowser *domains=0, bool autoResolve=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DNSSD::ServiceBrowser::ServiceBrowser           </td>
          <td>(</td>
          <td class="paramtype">const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classDNSSD_1_1DomainBrowser.html">DomainBrowser</a> *&nbsp;</td>
          <td class="paramname"> <em>domains</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>autoResolve</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The same as above, but allows only one service type. 
<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>type</em>&nbsp;</td><td>Type of services to browse for </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>domains</em>&nbsp;</td><td><a class="el" href="classDNSSD_1_1DomainBrowser.html">DomainBrowser</a> object used to specify domains to browse. You do not have to connect its domainAdded() signal - it will be done automatically. You can left this parameter as NULL for default domains. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>autoResolve</em>&nbsp;</td><td>auto resolve, if set </td></tr>
  </table>
</dl>
<dl compact><dt><b><a class="el" href="deprecated.html#_deprecated000001">Deprecated:</a></b></dt><dd>use previous constructor instead </dd></dl>

<p>
Definition at line <a class="el" href="servicebrowser_8cpp-source.html#l00055">55</a> of file <a class="el" href="servicebrowser_8cpp-source.html">servicebrowser.cpp</a>.
</div>
</div><p>
<a class="anchor" name="3287b05ec16dc8f555bd9e6ff75a41b9"></a><!-- doxytag: member="DNSSD::ServiceBrowser::ServiceBrowser" ref="3287b05ec16dc8f555bd9e6ff75a41b9" args="(const QString &amp;type, const QString &amp;domain, int flags)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DNSSD::ServiceBrowser::ServiceBrowser           </td>
          <td>(</td>
          <td class="paramtype">const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>domain</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>flags</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Overloaded constructor used to create browser for one domain. 
<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>type</em>&nbsp;</td><td>Type of services to browse for </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>domain</em>&nbsp;</td><td>Domain name. You can add more domains later using addDomain and remove them with removeDomain </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>flags</em>&nbsp;</td><td>One or more values from <a class="el" href="classDNSSD_1_1ServiceBrowser.html#10145786fee881ef381335e338142cc8">Flags</a>. AutoDelete flag has no effect </td></tr>
  </table>
</dl>
<dl compact><dt><b>Since:</b></dt><dd>3.5 </dd></dl>

<p>
Definition at line <a class="el" href="servicebrowser_8cpp-source.html#l00081">81</a> of file <a class="el" href="servicebrowser_8cpp-source.html">servicebrowser.cpp</a>.
</div>
</div><p>
<a class="anchor" name="b3a99e75094f374989ab23ba40de4b07"></a><!-- doxytag: member="DNSSD::ServiceBrowser::ServiceBrowser" ref="b3a99e75094f374989ab23ba40de4b07" args="(const QString &amp;type, const QString &amp;domain, bool autoResolve=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DNSSD::ServiceBrowser::ServiceBrowser           </td>
          <td>(</td>
          <td class="paramtype">const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>domain</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>autoResolve</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b><a class="el" href="deprecated.html#_deprecated000002">Deprecated:</a></b></dt><dd>user previous constructor instead </dd></dl>

<p>
Definition at line <a class="el" href="servicebrowser_8cpp-source.html#l00077">77</a> of file <a class="el" href="servicebrowser_8cpp-source.html">servicebrowser.cpp</a>.
</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="e67a3a3affccd42836984a781f471677"></a><!-- doxytag: member="DNSSD::ServiceBrowser::addDomain" ref="e67a3a3affccd42836984a781f471677" args="(const QString &amp;domain)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DNSSD::ServiceBrowser::addDomain           </td>
          <td>(</td>
          <td class="paramtype">const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>domain</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [slot]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Add new domain to browse. 
<p>

<p>
Definition at line <a class="el" href="servicebrowser_8cpp-source.html#l00180">180</a> of file <a class="el" href="servicebrowser_8cpp-source.html">servicebrowser.cpp</a>.
</div>
</div><p>
<a class="anchor" name="f601e99c0c5e3c9da10379aac901f09f"></a><!-- doxytag: member="DNSSD::ServiceBrowser::browsedDomains" ref="f601e99c0c5e3c9da10379aac901f09f" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classDNSSD_1_1DomainBrowser.html">DomainBrowser</a> * DNSSD::ServiceBrowser::browsedDomains           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return <a class="el" href="classDNSSD_1_1DomainBrowser.html">DomainBrowser</a> containing domains being browsed. 
<p>
Valid object will returned even if 'domains' parameters in constructor was set to NULL or single domain constructor was used. 
<p>
Definition at line <a class="el" href="servicebrowser_8cpp-source.html#l00109">109</a> of file <a class="el" href="servicebrowser_8cpp-source.html">servicebrowser.cpp</a>.
</div>
</div><p>
<a class="anchor" name="3c84a5bef984db1d92ba7c9f01ade76d"></a><!-- doxytag: member="DNSSD::ServiceBrowser::finished" ref="3c84a5bef984db1d92ba7c9f01ade76d" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DNSSD::ServiceBrowser::finished           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [signal]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Emitted when all services has been reported. 
<p>
This signal can be used by application that just want to get list of currently available services (similar to directory listing) and do not care about dynamic adding/removing services later. This signal can be emitted many time: for example if new host has been connected to network and is announcing some services interesting to this <a class="el" href="classDNSSD_1_1ServiceBrowser.html">ServiceBrowser</a>, they will be reported by several <a class="el" href="classDNSSD_1_1ServiceBrowser.html#0ec829e711803a1581cbf9bfe3a1c74e">serviceAdded()</a> signals and whole batch will be concluded by <a class="el" href="classDNSSD_1_1ServiceBrowser.html#3c84a5bef984db1d92ba7c9f01ade76d">finished()</a>. 
</div>
</div><p>
<a class="anchor" name="f12dec77721d32b2722e08f8855f4386"></a><!-- doxytag: member="DNSSD::ServiceBrowser::isAvailable" ref="f12dec77721d32b2722e08f8855f4386" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classDNSSD_1_1ServiceBrowser.html#e9f85071521523b84724e35008de67f3">ServiceBrowser::State</a> DNSSD::ServiceBrowser::isAvailable           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks availability of DNS-SD services (this also covers publishing). 
<p>
If you use this function to report an error to the user, below is a suggestion on how to word the errors:<p>
<div class="fragment"><pre class="fragment">    <span class="keywordflow">switch</span>(<a class="code" href="classDNSSD_1_1ServiceBrowser.html#f12dec77721d32b2722e08f8855f4386">DNSSD::ServiceBrowser::isAvailable</a>()) {
      <span class="keywordflow">case</span> DNSSD::ServiceBrowser::Working:
        <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
          <span class="keywordflow">case</span> DNSSD::ServiceBrowser::Stopped:
            <span class="keywordflow">return</span> i18n(<span class="stringliteral">"&lt;p&gt;The Zeroconf daemon is not running. See the Service Discovery Handbook"</span>
                        <span class="stringliteral">" for more information.&lt;br/&gt;"</span>
                    <span class="stringliteral">"Other users will not see this system when browsing"</span>
                    <span class="stringliteral">" the network via zeroconf, but normal access will still work.&lt;/p&gt;"</span>);
          <span class="keywordflow">case</span> DNSSD::ServiceBrowser::Unsupported:
            <span class="keywordflow">return</span> i18n(<span class="stringliteral">"&lt;p&gt;Zeroconf support is not available in this version of KDE."</span>
                        <span class="stringliteral">" See the Service Discovery Handbook for more information.&lt;br/&gt;"</span>
                        <span class="stringliteral">"Other users will not see this system when browsing"</span>
                        <span class="stringliteral">" the network via zeroconf, but normal access will still work.&lt;/p&gt;"</span>);
          <span class="keywordflow">default</span>:
            <span class="keywordflow">return</span> i18n(<span class="stringliteral">"&lt;p&gt;Unknown error with Zeroconf.&lt;br/&gt;"</span>
                        <span class="stringliteral">"Other users will not see this system when browsing"</span>
                        <span class="stringliteral">" the network via zeroconf, but normal access will still work.&lt;/p&gt;"</span>);
        }
</pre></div> 
<p>
Definition at line <a class="el" href="servicebrowser_8cpp-source.html#l00086">86</a> of file <a class="el" href="servicebrowser_8cpp-source.html">servicebrowser.cpp</a>.
</div>
</div><p>
<a class="anchor" name="de4cc268e006a114ac19ae5b1d9eb671"></a><!-- doxytag: member="DNSSD::ServiceBrowser::removeDomain" ref="de4cc268e006a114ac19ae5b1d9eb671" args="(const QString &amp;domain)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DNSSD::ServiceBrowser::removeDomain           </td>
          <td>(</td>
          <td class="paramtype">const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>domain</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [slot]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Remove one domain from list of domains to browse. 
<p>

<p>
Definition at line <a class="el" href="servicebrowser_8cpp-source.html#l00168">168</a> of file <a class="el" href="servicebrowser_8cpp-source.html">servicebrowser.cpp</a>.
</div>
</div><p>
<a class="anchor" name="0ec829e711803a1581cbf9bfe3a1c74e"></a><!-- doxytag: member="DNSSD::ServiceBrowser::serviceAdded" ref="0ec829e711803a1581cbf9bfe3a1c74e" args="(DNSSD::RemoteService::Ptr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DNSSD::ServiceBrowser::serviceAdded           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classDNSSD_1_1RemoteService.html#69b7cb209efdfc9d6a292a8152134577">DNSSD::RemoteService::Ptr</a>&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [signal]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Emitted when new service is discovered (or resolved if autoresolve is set. 
<p>

</div>
</div><p>
<a class="anchor" name="55ffe360c6e153270c00ed812d7dd21c"></a><!-- doxytag: member="DNSSD::ServiceBrowser::serviceRemoved" ref="55ffe360c6e153270c00ed812d7dd21c" args="(DNSSD::RemoteService::Ptr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DNSSD::ServiceBrowser::serviceRemoved           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classDNSSD_1_1RemoteService.html#69b7cb209efdfc9d6a292a8152134577">DNSSD::RemoteService::Ptr</a>&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [signal]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Emitted when service is no longer announced. 
<p>
<a class="el" href="classDNSSD_1_1RemoteService.html">RemoteService</a> object is deleted from services list and destroyed immediately after this signal returns. 
</div>
</div><p>
<a class="anchor" name="f449530c4386c14f84ae6ce78856b6ac"></a><!-- doxytag: member="DNSSD::ServiceBrowser::services" ref="f449530c4386c14f84ae6ce78856b6ac" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="elRef" doxygen="qt.tag:" href="qvaluelist.html">QValueList</a>&lt; <a class="el" href="classDNSSD_1_1RemoteService.html#69b7cb209efdfc9d6a292a8152134577">RemoteService::Ptr</a> &gt; &amp; DNSSD::ServiceBrowser::services           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns list of services. 
<p>

<p>
Definition at line <a class="el" href="servicebrowser_8cpp-source.html#l00212">212</a> of file <a class="el" href="servicebrowser_8cpp-source.html">servicebrowser.cpp</a>.
</div>
</div><p>
<a class="anchor" name="0cac558b7221b7be7f5ce2c92ce9cf06"></a><!-- doxytag: member="DNSSD::ServiceBrowser::startBrowse" ref="0cac558b7221b7be7f5ce2c92ce9cf06" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DNSSD::ServiceBrowser::startBrowse           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Starts browsing for services. 
<p>
To stop it just destroy the object. 
<p>
Definition at line <a class="el" href="servicebrowser_8cpp-source.html#l00132">132</a> of file <a class="el" href="servicebrowser_8cpp-source.html">servicebrowser.cpp</a>.
</div>
</div><p>
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="8160b0aa878a7df249d19ef039b0b443"></a><!-- doxytag: member="DNSSD::ServiceBrowser::AllServices" ref="8160b0aa878a7df249d19ef039b0b443" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> <a class="el" href="classDNSSD_1_1ServiceBrowser.html#8160b0aa878a7df249d19ef039b0b443">DNSSD::ServiceBrowser::AllServices</a> = &quot;_services._dns-sd._udp&quot;<code> [static]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Special service type to search for all available service types. 
<p>
Pass it as "type" parameter to <a class="el" href="classDNSSD_1_1ServiceBrowser.html">ServiceBrowser</a> constructor. 
<p>
Definition at line <a class="el" href="servicebrowser_8h-source.html#l00142">142</a> of file <a class="el" href="servicebrowser_8h-source.html">servicebrowser.h</a>.
</div>
</div><p>
<hr>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="servicebrowser_8h-source.html">servicebrowser.h</a><li><a class="el" href="servicebrowser_8cpp-source.html">servicebrowser.cpp</a></ul>
    </div></div>


      </td>
  </tr>
  <tr>
    <td valign="top" id="leftmenu" width="25%">
      <a name="navigation"></a>
      <div class="menu_box"><h2>dnssd</h2>
<div class="nav_list">
<ul><li><a href="index.html">Main Page</a></li><li><a href="namespaces.html">Namespace List</a></li><li><a href="hierarchy.html">Class Hierarchy</a></li><li><a href="classes.html">Alphabetical List</a></li><li><a href="annotated.html">Class List</a></li><li><a href="files.html">File List</a></li><li><a href="namespacemembers.html">Namespace Members</a></li><li><a href="functions.html">Class Members</a></li><li><a href="pages.html">Related Pages</a></li></ul>
<!--
<h2>Class Picker</h2>
<div style="text-align: center;">
<form name="guideform">
<select name="guidelinks" style="width:100%;" onChange="window.location=document.guideform.guidelinks.options[document.guideform.guidelinks.selectedIndex].value">
<option value="annotated.html">-- Choose --</option>
  <option value="classDNSSD_1_1AddRemoveEvent.html">dnssd::addremoveevent</option>,  <option value="classDNSSD_1_1Configuration.html">dnssd::configuration</option>,  <option value="classDNSSD_1_1Configuration_1_1EnumPublishType.html">dnssd::configuration::enumpublishtype</option>,  <option value="classDNSSD_1_1DomainBrowser.html">dnssd::domainbrowser</option>,  <option value="classDNSSD_1_1ErrorEvent.html">dnssd::errorevent</option>,  <option value="classDNSSD_1_1PublicService.html">dnssd::publicservice</option>,  <option value="classDNSSD_1_1PublishEvent.html">dnssd::publishevent</option>,  <option value="classDNSSD_1_1Query.html">dnssd::query</option>,  <option value="classDNSSD_1_1RemoteService.html">dnssd::remoteservice</option>,  <option value="classDNSSD_1_1ResolveEvent.html">dnssd::resolveevent</option>,  <option value="classDNSSD_1_1Responder.html">dnssd::responder</option>,  <option value="classDNSSD_1_1ServiceBase.html">dnssd::servicebase</option>,  <option value="classDNSSD_1_1ServiceBrowser.html">dnssd::servicebrowser</option>,
</select>
</form>
</div>
-->
</div></div>
<div class="menu_box"><h2>API Dox</h2>
<div class="nav_list">
<ul>
<li><a href="../../arts/html/index.html">arts</a></li><li><a href="../../dcop/html/index.html">dcop</a></li><li><a href="../../dnssd/html/index.html">dnssd</a></li><li><a href="../../interfaces/html/index.html">interfaces</a></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<a href="../../interfaces/kimproxy/interface/html/index.html">interface</a></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<a href="../../interfaces/kimproxy/library/html/index.html">library</a></li><li>&nbsp;&nbsp;<a href="../../interfaces/kspeech/html/index.html">kspeech</a></li><li>&nbsp;&nbsp;<a href="../../interfaces/ktexteditor/html/index.html">ktexteditor</a></li><li><a href="../../kabc/html/index.html">kabc</a></li><li><a href="../../kate/html/index.html">kate</a></li><li><a href="../../kcmshell/html/index.html">kcmshell</a></li><li><a href="../../kdecore/html/index.html">kdecore</a></li><li><a href="../../kded/html/index.html">kded</a></li><li><a href="../../kdefx/html/index.html">kdefx</a></li><li><a href="../../kdeprint/html/index.html">kdeprint</a></li><li><a href="../../kdesu/html/index.html">kdesu</a></li><li><a href="../../kdeui/html/index.html">kdeui</a></li><li><a href="../../kdoctools/html/index.html">kdoctools</a></li><li><a href="../../khtml/html/index.html">khtml</a></li><li><a href="../../kimgio/html/index.html">kimgio</a></li><li><a href="../../kinit/html/index.html">kinit</a></li><li><a href="../../kio/html/index.html">kio</a></li><li>&nbsp;&nbsp;<a href="../../kio/bookmarks/html/index.html">bookmarks</a></li><li>&nbsp;&nbsp;<a href="../../kio/httpfilter/html/index.html">httpfilter</a></li><li>&nbsp;&nbsp;<a href="../../kio/kfile/html/index.html">kfile</a></li><li>&nbsp;&nbsp;<a href="../../kio/kio/html/index.html">kio</a></li><li>&nbsp;&nbsp;<a href="../../kio/kioexec/html/index.html">kioexec</a></li><li>&nbsp;&nbsp;<a href="../../kio/kpasswdserver/html/index.html">kpasswdserver</a></li><li>&nbsp;&nbsp;<a href="../../kio/kssl/html/index.html">kssl</a></li><li><a href="../../kioslave/html/index.html">kioslave</a></li><li>&nbsp;&nbsp;<a href="../../kioslave/http/html/index.html">http</a></li><li><a href="../../kjs/html/index.html">kjs</a></li><li><a href="../../kmdi/html/index.html">kmdi</a></li><li>&nbsp;&nbsp;<a href="../../kmdi/kmdi/html/index.html">kmdi</a></li><li><a href="../../knewstuff/html/index.html">knewstuff</a></li><li><a href="../../kparts/html/index.html">kparts</a></li><li><a href="../../kresources/html/index.html">kresources</a></li><li><a href="../../kspell2/html/index.html">kspell2</a></li><li><a href="../../kunittest/html/index.html">kunittest</a></li><li><a href="../../kutils/html/index.html">kutils</a></li><li><a href="../../kwallet/html/index.html">kwallet</a></li><li><a href="../../libkmid/html/index.html">libkmid</a></li><li><a href="../../libkscreensaver/html/index.html">libkscreensaver</a></li>
</ul></div></div>


        </td>
</tr>
</table>

<span class="doNotDisplay">
  <a href="http://www.kde.org/" accesskey="8">KDE Home</a> |
  <a href="http://accessibility.kde.org/" accesskey="9">KDE Accessibility Home</a> |
  <a href="http://www.kde.org/media/accesskeys.php" accesskey="0">Description of Access Keys</a>
</span>


<div style="height: 8px"></div>

<div id="footer">
  <div id="footer_left">
    Maintained by <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;groo&#116;&#64;kde&#46;or&#x67;">Adriaan de Groot</a>
and
<a href="&#109;a&#105;&#108;&#116;&#111;&#58;w&#105;nter&#116;&#64;kde&#46;or&#x67">Allen Winter</a>.
<br/>
    KDE and K Desktop Environment are trademarks of <a href="http://www.kde.org/areas/kde-ev/" title="Homepage of the KDE non-profit Organization">KDE e.V.</a> |
    <a href="http://www.kde.org/contact/impressum.php">Legal</a>
  </div>
  <div id="footer_right"><img src="/media/images/footer_right.png" style="margin: 0px" alt="" /></div>
</div>

<!--
WARNING: DO NOT SEND MAIL TO THE FOLLOWING EMAIL ADDRESS! YOU WILL
BE BLOCKED INSTANTLY AND PERMANENTLY!
<a href="mailto:aaaatrap-425acc3b5374943f@kde.org">Block me</a>
WARNING END
-->

</body>
</html>