Inheritance: Service, IResolvableService, IDisposable
Beispiel #1
0
        protected virtual void OnServiceRemoved(BrowseService service)
        {
            ServiceBrowseEventHandler handler = ServiceRemoved;

            if (handler != null)
            {
                handler(this, new ServiceBrowseEventArgs(service));
            }
        }
Beispiel #2
0
        private void OnItemRemove(int @interface, Protocol protocol, string name, string type,
                                  string domain, LookupResultFlags flags)
        {
            lock (this) {
                BrowseService service = new BrowseService(name, type, domain, @interface, protocol);

                if (services.ContainsKey(name))
                {
                    services[name].Dispose();
                    services.Remove(name);
                }

                OnServiceRemoved(service);
                service.Dispose();
            }
        }
        private void OnItemRemove(int @interface, Protocol protocol, string name, string type,
                                  string domain, LookupResultFlags flags)
        {
            lock (this) {
                BrowseService service = new BrowseService(name, type, domain, @interface, protocol);
                BrowseService to_dispose;

                // handler may be called recursively, so remove service from services before disposing
                if (services.TryGetValue(name, out to_dispose))
                {
                    services.Remove(name);
                    to_dispose.Dispose();
                }

                OnServiceRemoved(service);
                service.Dispose();
            }
        }
        private void OnItemNew(int @interface, Protocol protocol, string name, string type,
                               string domain, LookupResultFlags flags)
        {
            lock (this) {
                BrowseService service = new BrowseService(name, type, domain, @interface, protocol);
                BrowseService to_dispose;

                if (services.TryGetValue(name, out to_dispose))
                {
                    services[name] = service;
                    to_dispose.Dispose();
                }
                else
                {
                    services.Add(name, service);
                }

                OnServiceAdded(service);
            }
        }