Example #1
0
        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);
                }
            }
        }