private void OnBrowseReply(ServiceRef sdRef, ServiceFlags flags, uint interfaceIndex, ServiceError errorCode, string serviceName, string regtype, string replyDomain, IntPtr context) { BrowseService service = new BrowseService(); service.Flags = flags; service.Name = serviceName; service.RegType = regtype; service.ReplyDomain = replyDomain; service.InterfaceIndex = interfaceIndex; ServiceBrowseEventArgs args = new ServiceBrowseEventArgs(); args.Service = service; args.MoreComing = (flags & ServiceFlags.MoreComing) != 0; if ((flags & ServiceFlags.Add) != 0) { lock (service_table.SyncRoot) { service_table[serviceName] = service; } ServiceBrowseEventHandler handler = ServiceAdded; if (handler != null) { handler(this, args); } } else { lock (service_table.SyncRoot) { service_table.Remove(serviceName); } ServiceBrowseEventHandler handler = ServiceRemoved; if (handler != null) { handler(this, args); } } }
private void OnBrowseReply(ServiceRef sdRef, ServiceFlags flags, uint interfaceIndex, ServiceError errorCode, string serviceName, string regtype, string replyDomain, IntPtr context) { BrowseService service = new BrowseService(); service.Flags = flags; service.Name = serviceName; service.RegType = regtype; service.ReplyDomain = replyDomain; service.InterfaceIndex = interfaceIndex; ServiceBrowseEventArgs args = new ServiceBrowseEventArgs(); args.Service = service; args.MoreComing = (flags & ServiceFlags.MoreComing) != 0; if((flags & ServiceFlags.Add) != 0) { lock(service_table.SyncRoot) { service_table[serviceName] = service; } ServiceBrowseEventHandler handler = ServiceAdded; if(handler != null) { handler(this, args); } } else { lock(service_table.SyncRoot) { service_table.Remove(serviceName); } ServiceBrowseEventHandler handler = ServiceRemoved; if(handler != null) { handler(this, args); } } }