summaryrefslogtreecommitdiffstats
path: root/avahi-sharp/ServiceBrowser.cs
diff options
context:
space:
mode:
Diffstat (limited to 'avahi-sharp/ServiceBrowser.cs')
-rw-r--r--avahi-sharp/ServiceBrowser.cs16
1 files changed, 12 insertions, 4 deletions
diff --git a/avahi-sharp/ServiceBrowser.cs b/avahi-sharp/ServiceBrowser.cs
index 92b8011..a9c1726 100644
--- a/avahi-sharp/ServiceBrowser.cs
+++ b/avahi-sharp/ServiceBrowser.cs
@@ -49,7 +49,7 @@ namespace Avahi
public delegate void ServiceInfoHandler (object o, ServiceInfo info);
- public class ServiceBrowser : IDisposable
+ public class ServiceBrowser : BrowserBase, IDisposable
{
private IntPtr handle;
private ArrayList infos = new ArrayList ();
@@ -179,17 +179,25 @@ namespace Avahi
info.Flags = flags;
infos.Add (info);
-
- if (bevent == BrowserEvent.Added) {
+
+ switch (bevent) {
+ case BrowserEvent.Added:
infos.Add (info);
foreach (ServiceInfoHandler handler in addListeners)
handler (this, info);
- } else {
+
+ break;
+ case BrowserEvent.Removed:
infos.Remove (info);
foreach (ServiceInfoHandler handler in removeListeners)
handler (this, info);
+
+ break;
+ default:
+ EmitBrowserEvent (bevent);
+ break;
}
}
}