コード例 #1
0
        public void Browse(uint interfaceIndex, AddressProtocol addressProtocol, string regtype, string domain)
        {
            lock (this) {
                Dispose();

                ObjectPath object_path = DBusManager.Server.ServiceBrowserNew(
                    AvahiUtils.FromMzcInterface(interfaceIndex),
                    AvahiUtils.FromMzcProtocol(addressProtocol),
                    regtype ?? String.Empty, domain ?? String.Empty,
                    LookupFlags.None);

                service_browser = DBusManager.GetObject <IAvahiServiceBrowser> (object_path);
            }

            service_browser.ItemNew    += OnItemNew;
            service_browser.ItemRemove += OnItemRemove;
        }
コード例 #2
0
ファイル: ServiceBrowser.cs プロジェクト: hacxman/zeroshare
        public void Browse(uint interfaceIndex, AddressProtocol addressProtocol, string regtype, string domain)
        {
            DBusManager.Bus.TrapSignals ();

            lock (this) {
                Dispose ();

                ObjectPath object_path = DBusManager.Server.ServiceBrowserNew (
                    AvahiUtils.FromMzcInterface (interfaceIndex),
                    AvahiUtils.FromMzcProtocol (addressProtocol),
                    regtype ?? String.Empty, domain ?? String.Empty,
                    LookupFlags.None);

                service_browser = DBusManager.GetObject<IAvahiServiceBrowser> (object_path);
            }

            service_browser.ItemNew += OnItemNew;
            service_browser.ItemRemove += OnItemRemove;

            DBusManager.Bus.UntrapSignals ();
        }
コード例 #3
0
ファイル: ServiceBrowser.cs プロジェクト: t0fuu/disco
        public void Dispose()
        {
            lock (this) {
                IAvahiServiceBrowser service_browser = this.service_browser;
                if (service_browser != null)
                {
                    this.service_browser        = null;
                    service_browser.ItemNew    -= OnItemNew;
                    service_browser.ItemRemove -= OnItemRemove;
                    service_browser.Free();
                }

                if (services.Count > 0)
                {
                    List <BrowseService> services_list = new List <BrowseService> (services.Values);
                    services.Clear();  // Clear first so we no-op if we Dispose() again

                    foreach (BrowseService service in services_list)
                    {
                        service.Dispose();
                    }
                }
            }
        }