Beispiel #1
0
        internal void OnServiceAdded(ServiceInfo service)
        {
            var announcement = new ServiceAnnouncement
            {
                Hostname         = service.HostName.Labels[0],
                Domain           = service.HostName.SubName(1).ToString(),
                Addresses        = service.Addresses,
                Instance         = service.Name.Labels[0],
                NetworkInterface = service.NetworkInterface,
                Port             = (ushort)service.Port,
                Txt  = service.Txt,
                Type = service.Name.SubName(1, 2).ToString()
            };

            lock (_serviceAnnouncements)
            {
                _serviceAnnouncements.Add(Tuple.Create(service.NetworkInterface.Id, service.Name), announcement);
            }
            SynchronizationContextPost(o =>
            {
                lock (Services)
                {
                    _services.Add(announcement);
                }
                if (ServiceAdded != null)
                {
                    ServiceAdded(this, new ServiceAnnouncementEventArgs(announcement));
                }
            });
        }
Beispiel #2
0
        internal void OnServiceChanged(ServiceInfo service)
        {
            ServiceAnnouncement announcement;

            lock (_serviceAnnouncements)
            {
                announcement = _serviceAnnouncements[Tuple.Create(service.NetworkInterface.Id, service.Name)];
            }
            var tmpAnnouncement = new ServiceAnnouncement()
            {
                Hostname         = service.HostName.Labels[0],
                Domain           = service.HostName.SubName(1).ToString(),
                Addresses        = service.Addresses,
                Instance         = service.Name.Labels[0],
                NetworkInterface = service.NetworkInterface,
                Port             = (ushort)service.Port,
                Txt  = service.Txt,
                Type = service.Name.SubName(1, 2).ToString()
            };

            SynchronizationContextPost(o =>
            {
                announcement.Hostname         = tmpAnnouncement.Hostname;
                announcement.Domain           = tmpAnnouncement.Domain;
                announcement.Addresses        = tmpAnnouncement.Addresses;
                announcement.Instance         = tmpAnnouncement.Instance;
                announcement.NetworkInterface = tmpAnnouncement.NetworkInterface;
                announcement.Port             = tmpAnnouncement.Port;
                announcement.Txt  = tmpAnnouncement.Txt;
                announcement.Type = tmpAnnouncement.Type;
                if (ServiceChanged != null)
                {
                    ServiceChanged(this, new ServiceAnnouncementEventArgs(announcement));
                }
            });
        }
Beispiel #3
0
 internal void OnServiceAdded(ServiceInfo service)
 {
     var announcement = new ServiceAnnouncement
     {
         Hostname = service.HostName.Labels[0],
         Domain = service.HostName.SubName(1).ToString(),
         Addresses = service.Addresses,
         Instance = service.Name.Labels[0],
         NetworkInterface = service.NetworkInterface,
         Port = (ushort)service.Port,
         Txt = service.Txt,
         Type = service.Name.SubName(1, 2).ToString()
     };
     lock (_serviceAnnouncements)
     {
         _serviceAnnouncements.Add(Tuple.Create(service.NetworkInterface.Id, service.Name), announcement);
     }
     SynchronizationContextPost(o =>
     {
         lock (_services)
         {
             _services.Add(announcement);
         }
         if (ServiceAdded != null)
         {
             ServiceAdded(this, new ServiceAnnouncementEventArgs(announcement));
         }
     });
 }
Beispiel #4
0
 internal void OnServiceChanged(ServiceInfo service)
 {
     ServiceAnnouncement announcement;
     lock (_serviceAnnouncements)
     {
         announcement = _serviceAnnouncements[Tuple.Create(service.NetworkInterface.Id, service.Name)];
     }
     var tmpAnnouncement = new ServiceAnnouncement()
     {
         Hostname = service.HostName.Labels[0],
         Domain = service.HostName.SubName(1).ToString(),
         Addresses = service.Addresses,
         Instance = service.Name.Labels[0],
         NetworkInterface = service.NetworkInterface,
         Port = (ushort)service.Port,
         Txt = service.Txt,
         Type = service.Name.SubName(1, 2).ToString()
     };
     SynchronizationContextPost(o =>
     {
         announcement.Hostname = tmpAnnouncement.Hostname;
         announcement.Domain = tmpAnnouncement.Domain;
         announcement.Addresses = tmpAnnouncement.Addresses;
         announcement.Instance = tmpAnnouncement.Instance;
         announcement.NetworkInterface = tmpAnnouncement.NetworkInterface;
         announcement.Port = tmpAnnouncement.Port;
         announcement.Txt = tmpAnnouncement.Txt;
         announcement.Type = tmpAnnouncement.Type;
         if (ServiceChanged != null)
         {
             ServiceChanged(this, new ServiceAnnouncementEventArgs(announcement));
         }
     });
 }
 void printService(char startChar, ServiceAnnouncement service)
 {
     Console.WriteLine("{0} '{1}' on {2}", startChar, service.Instance, service.NetworkInterface.Name);
     foreach (var ipAddress in service.Addresses)
     {
         Console.WriteLine("\tHost: {0} ({1})", service.Hostname, ipAddress);
     }
     //Console.WriteLine("\tHost: {0} ({1})", service.Hostname, string.Join(", ", service.Addresses));
     Console.WriteLine("\tPort: {0}", service.Port);
     Console.WriteLine("\tTxt : [{0}]", service.Txt);
 }
 public void SendJson(ServiceAnnouncement service, string json)
 {
 }
Beispiel #7
0
 static void printService(ServiceAnnouncement service)
 {
     Console.Write("{0}.{1}\n", service.Hostname, service.Domain);
 }
 public ServiceAnnouncementEventArgs(ServiceAnnouncement announcement)
 {
     Announcement = announcement;
 }