<table><tr><td style="">sitter added a comment.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D19514">View Revision</a></tr></table><br /><div><div><p>I haven't had a proper look, so only style complaints for now... but...</p>

<p>Isn't the problem rather that the daemon shouldn't be randomly restarted on a live system? I.e. this ultimately is an integration issue on the distro-level.<br />
I doubt many if any avahi clients handle this properly and disadvantageous side effects are rather expected. Same as pulseaudio for example.</p>

<p>So I am not sure if this is worth handling at all, but if we handle it we should do it properly and republish/rediscover services. The client shouldn't get broken frontend objects just because the backend of the backend restarted.</p></div></div><br /><div><strong>INLINE COMMENTS</strong><div><div style="margin: 6px 0 12px 0;"><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D19514#inline-108994">View Inline</a><span style="color: #4b4d51; font-weight: bold;">CMakeLists.txt:22</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; ">        avahi_listener.cpp
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">        avahi-disconn-handler.cpp
</div><div style="padding: 0 8px; margin: 0 4px; ">    )
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">disconn<strong>ect</strong></p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D19514#inline-109007">View Inline</a><span style="color: #4b4d51; font-weight: bold;">avahi-disconn-handler.cpp:1</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);"><span style="color: #304a96">#include</span> <span class="cpf"><QDBusServiceWatcher></span><span style="color: #304a96"></span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);"><span style="color: #304a96">#include</span> <span class="cpf"><QDBusConnection></span><span style="color: #304a96"></span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">needs a license header</p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D19514#inline-109018">View Inline</a><span style="color: #4b4d51; font-weight: bold;">avahi-disconn-handler.cpp:8</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span style="color: #aa4000">auto</span> <span class="n">nameChangeObserver</span> <span style="color: #aa2211">=</span> <span style="color: #aa4000">new</span> <span class="n">QDBusServiceWatcher</span><span class="p">(</span><span style="color: #766510">"org.freedesktop.Avahi"</span><span class="p">,</span> <span class="n">QDBusConnection</span><span style="color: #aa2211">::</span><span class="n">systemBus</span><span class="p">(),</span> <span class="n">QDBusServiceWatcher</span><span style="color: #aa2211">::</span><span class="n">WatchForOwnerChange</span><span class="p">,</span> <span style="color: #aa4000">this</span><span class="p">);</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span class="n">QObject</span><span style="color: #aa2211">::</span><span class="n">connect</span><span class="p">(</span><span class="n">nameChangeObserver</span><span class="p">,</span> <span style="color: #aa2211">&</span><span class="n">QDBusServiceWatcher</span><span style="color: #aa2211">::</span><span class="n">serviceOwnerChanged</span><span class="p">,</span> <span style="color: #aa4000">this</span><span class="p">,</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">                     <span class="p">[</span><span style="color: #aa4000">this</span><span class="p">](</span><span style="color: #aa4000">const</span> <span class="n">QString</span><span style="color: #aa2211">&</span> <span class="n">name</span><span class="p">,</span> <span style="color: #aa4000">const</span> <span class="n">QString</span><span style="color: #aa2211">&</span> <span class="n">oldO</span><span class="p">,</span> <span style="color: #aa4000">const</span> <span class="n">QString</span><span style="color: #aa2211">&</span> <span class="n">newO</span><span class="p">)</span> <span class="p">{</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">no need for QObject::</p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D19514#inline-109005">View Inline</a><span style="color: #4b4d51; font-weight: bold;">avahi-disconn-handler.cpp:9</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span class="n">QObject</span><span style="color: #aa2211">::</span><span class="n">connect</span><span class="p">(</span><span class="n">nameChangeObserver</span><span class="p">,</span> <span style="color: #aa2211">&</span><span class="n">QDBusServiceWatcher</span><span style="color: #aa2211">::</span><span class="n">serviceOwnerChanged</span><span class="p">,</span> <span style="color: #aa4000">this</span><span class="p">,</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">                     <span class="p">[</span><span style="color: #aa4000">this</span><span class="p">](</span><span style="color: #aa4000">const</span> <span class="n">QString</span><span style="color: #aa2211">&</span> <span class="n">name</span><span class="p">,</span> <span style="color: #aa4000">const</span> <span class="n">QString</span><span style="color: #aa2211">&</span> <span class="n">oldO</span><span class="p">,</span> <span style="color: #aa4000">const</span> <span class="n">QString</span><span style="color: #aa2211">&</span> <span class="n">newO</span><span class="p">)</span> <span class="p">{</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">                         <span style="color: #aa4000">if</span> <span class="p">(</span><span class="n">newO</span><span class="p">.</span><span class="n">isEmpty</span><span class="p">())</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;"><tt style="background: #ebebeb; font-size: 13px;">&</tt> go right of the space</p>

<p style="padding: 0; margin: 8px;">use descriptive variable names</p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D19514#inline-109006">View Inline</a><span style="color: #4b4d51; font-weight: bold;">avahi-disconn-handler.cpp:15</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);"><span style="color: #aa4000">auto</span> <span class="n">KDNSSD</span><span style="color: #aa2211">::</span><span class="n">AvahiDisconnectHandler</span><span style="color: #aa2211">::</span><span class="n">instance</span><span class="p">()</span> <span style="color: #aa2211">-></span> <span class="n">AvahiDisconnectHandler</span><span style="color: #aa2211">&</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);"><span class="p">{</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">don't use trailing return type but simply use return type instead of auto</p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D19514#inline-109008">View Inline</a><span style="color: #4b4d51; font-weight: bold;">avahi-disconn-handler.h:1</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);"><span style="color: #304a96">#ifndef AVAHI_DISCONNECT_HANDLER___H_</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);"><span style="color: #304a96">#define AVAHI_DISCONNECT_HANDLER___H_</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">needs a license header</p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D19514#inline-109013">View Inline</a><span style="color: #4b4d51; font-weight: bold;">avahi-disconn-handler.h:8</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">  <span class="n">class</span> <span style="color: #a0a000">AvahiDisconnectHandler</span> <span class="p">:</span> <span class="n">public</span> <span class="n">QObject</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">  <span class="p">{</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">we do not indent classes within a namespace</p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D19514#inline-109015">View Inline</a><span style="color: #4b4d51; font-weight: bold;">avahi-disconn-handler.h:12</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">      <span class="n">AvahiDisconnectHandler</span><span class="p">();</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">  <span style="color: #a0a000">Q_SIGNALS</span><span class="p">:</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">privates at the bottom of the class in a private section please</p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D19514#inline-109014">View Inline</a><span style="color: #4b4d51; font-weight: bold;">avahi-disconn-handler.h:13</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">      <span class="n">AvahiDisconnectHandler</span><span class="p">();</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">  <span style="color: #a0a000">Q_SIGNALS</span><span class="p">:</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">      <span style="color: #aa4000">void</span> <span class="n">avahiDisconnected</span><span class="p">();</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">the signal section goes after the public section</p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D19514#inline-109004">View Inline</a><span style="color: #4b4d51; font-weight: bold;">avahi-domainbrowser.cpp:40</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">                     <span class="p">[</span><span style="color: #aa4000">this</span><span class="p">]()</span> <span class="p">{</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">                         <span style="color: #aa4000">delete</span> <span class="n">d</span><span style="color: #aa2211">-></span><span class="n">m_browser</span><span class="p">;</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">                         <span class="n">d</span><span style="color: #aa2211">-></span><span class="n">m_browser</span> <span style="color: #aa2211">=</span> <span style="color: #601200">0</span><span class="p">;</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">deleteLater may be better</p>

<p style="padding: 0; margin: 8px;">the cleanup in this slot seems insufficient compared to the cleanup done for ServiceBrowser?</p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D19514#inline-109019">View Inline</a><span style="color: #4b4d51; font-weight: bold;">avahi-remoteservice.cpp:37</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; "><span class="p">{</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">  <span class="n">QObject</span><span style="color: #aa2211">::</span><span class="n">connect</span><span class="p">(</span><span style="color: #aa2211">&</span><span class="n">AvahiDisconnectHandler</span><span style="color: #aa2211">::</span><span class="n">instance</span> <span class="p">(),</span> <span style="color: #aa2211">&</span><span class="n">AvahiDisconnectHandler</span><span style="color: #aa2211">::</span><span class="n">avahiDisconnected</span><span class="p">,</span> <span style="color: #aa4000">this</span><span class="p">,</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">                   <span class="p">[</span><span style="color: #aa4000">this</span><span class="p">]()</span> <span class="p">{</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">no need for QObject::</p>

<p style="padding: 0; margin: 8px;">goes for all? other classes as well</p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D19514#inline-108996">View Inline</a><span style="color: #4b4d51; font-weight: bold;">avahi-remoteservice.cpp:40</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">                       <span class="n">K_D</span><span class="p">;</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">                       <span style="color: #aa4000">if</span><span class="p">(</span><span class="n">d</span><span style="color: #aa2211">-></span><span class="n">m_resolver</span><span class="p">)</span> <span class="p">{</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">                           <span style="color: #aa4000">delete</span> <span class="n">d</span><span style="color: #aa2211">-></span><span class="n">m_resolver</span><span class="p">;</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">space after if</p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D19514#inline-108997">View Inline</a><span style="color: #4b4d51; font-weight: bold;">avahi-servicebrowser.cpp:42</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; ">    <span class="n">d</span><span style="color: #aa2211">-></span><span class="n">m_timer</span><span class="p">.</span><span class="n">setSingleShot</span><span class="p">(</span><span style="color: #304a96">true</span><span class="p">);</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span class="n">QObject</span><span style="color: #aa2211">::</span><span class="n">connect</span><span class="p">(</span><span style="color: #aa2211">&</span><span class="n">AvahiDisconnectHandler</span><span style="color: #aa2211">::</span><span class="n">instance</span> <span class="p">(),</span> <span style="color: #aa2211">&</span><span class="n">AvahiDisconnectHandler</span><span style="color: #aa2211">::</span><span class="n">avahiDisconnected</span><span class="p">,</span> <span class="n">d</span><span class="p">,</span> <span class="p">[</span><span style="color: #aa4000">this</span><span class="p">]()</span> <span class="p">{</span> <span class="n">d</span><span style="color: #aa2211">-></span><span class="n">clean</span><span class="p">();</span> <span class="p">});</span>
</div><div style="padding: 0 8px; margin: 0 4px; "><span class="p">}</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">no space after instance</p>

<p style="padding: 0; margin: 8px;">also I think you need to bind the connection to <tt style="background: #ebebeb; font-size: 13px;">this</tt> seeing as you are capturing <tt style="background: #ebebeb; font-size: 13px;">this</tt></p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D19514#inline-109020">View Inline</a><span style="color: #4b4d51; font-weight: bold;">avahi-servicebrowser.cpp:42</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; ">    <span class="n">d</span><span style="color: #aa2211">-></span><span class="n">m_timer</span><span class="p">.</span><span class="n">setSingleShot</span><span class="p">(</span><span style="color: #304a96">true</span><span class="p">);</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span class="n">QObject</span><span style="color: #aa2211">::</span><span class="n">connect</span><span class="p">(</span><span style="color: #aa2211">&</span><span class="n">AvahiDisconnectHandler</span><span style="color: #aa2211">::</span><span class="n">instance</span> <span class="p">(),</span> <span style="color: #aa2211">&</span><span class="n">AvahiDisconnectHandler</span><span style="color: #aa2211">::</span><span class="n">avahiDisconnected</span><span class="p">,</span> <span class="n">d</span><span class="p">,</span> <span class="p">[</span><span style="color: #aa4000">this</span><span class="p">]()</span> <span class="p">{</span> <span class="n">d</span><span style="color: #aa2211">-></span><span class="n">clean</span><span class="p">();</span> <span class="p">});</span>
</div><div style="padding: 0 8px; margin: 0 4px; "><span class="p">}</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">no need for QObject::</p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D19514#inline-109003">View Inline</a><span style="color: #4b4d51; font-weight: bold;">avahi-servicebrowser_p.h:38</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; ">    <span class="n">friend</span> <span class="n">class</span> <span class="n">ServiceBrowser</span><span class="p">;</span> <span style="color: #74777d">// So the public class may functor connect.</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span style="color: #aa4000">void</span> <span style="color: #004012">clean</span><span class="p">();</span>
</div><div style="padding: 0 8px; margin: 0 4px; "><span style="color: #a0a000">public</span><span class="p">:</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">put this in an actual private section at the bottom please</p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D19514#inline-109021">View Inline</a><span style="color: #4b4d51; font-weight: bold;">avahi-servicetypebrowser.cpp:37</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; ">    <span class="n">d</span><span style="color: #aa2211">-></span><span class="n">m_timer</span><span class="p">.</span><span class="n">setSingleShot</span><span class="p">(</span><span style="color: #304a96">true</span><span class="p">);</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span class="n">QObject</span><span style="color: #aa2211">::</span><span class="n">connect</span><span class="p">(</span><span style="color: #aa2211">&</span><span class="n">AvahiDisconnectHandler</span><span style="color: #aa2211">::</span><span class="n">instance</span><span class="p">(),</span> <span style="color: #aa2211">&</span><span class="n">AvahiDisconnectHandler</span><span style="color: #aa2211">::</span><span class="n">avahiDisconnected</span><span class="p">,</span> <span style="color: #aa4000">this</span><span class="p">,</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">                     <span class="p">[</span><span style="color: #aa4000">this</span><span class="p">]()</span> <span class="p">{</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">no need for QObject::</p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D19514#inline-109000">View Inline</a><span style="color: #4b4d51; font-weight: bold;">avahi-servicetypebrowser.cpp:39</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">                     <span class="p">[</span><span style="color: #aa4000">this</span><span class="p">]()</span> <span class="p">{</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">                         <span style="color: #aa4000">delete</span> <span class="n">d</span><span style="color: #aa2211">-></span><span class="n">m_browser</span><span class="p">;</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">                         <span class="n">d</span><span style="color: #aa2211">-></span><span class="n">m_browser</span> <span style="color: #aa2211">=</span> <span style="color: #601200">0</span><span class="p">;</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">deleteLater may be better seeing as this is a slot and deletes in slots are dangerous</p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D19514#inline-108999">View Inline</a><span style="color: #4b4d51; font-weight: bold;">avahi-servicetypebrowser.cpp:40</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">                         <span style="color: #aa4000">delete</span> <span class="n">d</span><span style="color: #aa2211">-></span><span class="n">m_browser</span><span class="p">;</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">                         <span class="n">d</span><span style="color: #aa2211">-></span><span class="n">m_browser</span> <span style="color: #aa2211">=</span> <span style="color: #601200">0</span><span class="p">;</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">                     <span class="p">});</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">nullptr</p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D19514#inline-109009">View Inline</a><span style="color: #4b4d51; font-weight: bold;">avahi_listener.cpp:28</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; "><span class="p">{</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span class="n">m_connection</span> <span style="color: #aa2211">=</span> <span class="n">QObject</span><span style="color: #aa2211">::</span><span class="n">connect</span><span class="p">(</span><span style="color: #aa2211">&</span><span class="n">AvahiDisconnectHandler</span><span style="color: #aa2211">::</span><span class="n">instance</span><span class="p">(),</span> <span style="color: #aa2211">&</span><span class="n">AvahiDisconnectHandler</span><span style="color: #aa2211">::</span><span class="n">avahiDisconnected</span><span class="p">,</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">                                    <span class="p">[</span><span style="color: #aa4000">this</span><span class="p">]()</span> <span class="p">{</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">use a member initializer list here</p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D19514#inline-109024">View Inline</a><span style="color: #4b4d51; font-weight: bold;">avahi_listener.cpp:32</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">                                    <span class="p">});</span>
</div><div style="padding: 0 8px; margin: 0 4px; "><span class="p">}</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">The other classes ctors look super repetitive and could maybe just be moved in here. couldn't you simply make a pure virtual <tt style="background: #ebebeb; font-size: 13px;">reset()</tt> in here that is implemented in all avahi listeners and connect to that? Specifically since the expectation is that every dbus based object switches state when avahi disappears/appears the best way to express that in a way that one doesn't forget about it moving forward would be making the compiler throw a tantrum on a not implemented reset functionality.</p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D19514#inline-109012">View Inline</a><span style="color: #4b4d51; font-weight: bold;">avahi_listener_p.h:26</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; "><span style="color: #304a96">#include</span> <span class="cpf"><QString></span><span style="color: #304a96"></span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);"><span style="color: #304a96">#include</span> <span class="cpf"><QMetaObject></span><span style="color: #304a96"></span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">sort alphabetically</p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D19514#inline-109002">View Inline</a><span style="color: #4b4d51; font-weight: bold;">avahi_listener_p.h:37</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; "><span class="p">{</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span class="n">QMetaObject</span><span style="color: #aa2211">::</span><span class="n">Connection</span> <span class="n">m_connection</span><span class="p">;</span>
</div><div style="padding: 0 8px; margin: 0 4px; "><span style="color: #a0a000">public</span><span class="p">:</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">not very descriptive name</p>

<p style="padding: 0; margin: 8px;">privates at the bottom of the class in a private section please</p></div></div></div></div></div><br /><div><strong>REPOSITORY</strong><div><div>R272 KDNSSD</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D19514">https://phabricator.kde.org/D19514</a></div></div><br /><div><strong>To: </strong>jpalecek, sitter<br /><strong>Cc: </strong>kde-frameworks-devel, michaelh, ngraham, bruns<br /></div>