private static void OnServiceResolved(object o, ServiceResolvedEventArgs args) { IResolvableService service = o as IResolvableService; Console.Write("*** Resolved name = '{0}', host ip = '{1}', hostname = {2}, port = '{3}', " + "interface = '{4}', address type = '{5}'", service.FullName, service.HostEntry.AddressList[0], service.HostEntry.HostName, service.Port, service.NetworkInterface, service.AddressProtocol); ITxtRecord record = service.TxtRecord; int record_count = record != null ? record.Count : 0; if (record_count > 0) { Console.Write(", TXT Record = ["); for (int i = 0, n = record.Count; i < n; i++) { TxtRecordItem item = record.GetItemAt(i); Console.Write("{0} = '{1}'", item.Key, item.ValueString); if (i < n - 1) { Console.Write(", "); } } Console.WriteLine("]"); } else { Console.WriteLine(""); } }
private static void OnServiceResolved(object o, ServiceResolvedEventArgs args) { IResolvableService service = o as IResolvableService; string ip = service.HostEntry.AddressList[0].ToString(); string serial = ""; ITxtRecord record = service.TxtRecord; int record_count = record != null ? record.Count : 0; if (record_count > 0) { for (int i = 0, n = record.Count; i < n; i++) { TxtRecordItem item = record.GetItemAt(i); if (item.Key == "device") { serial = item.ValueString; Regex regexASNSerial = new Regex(@"AS\w{8}"); Match match; match = regexASNSerial.Match(serial); if (match.Success) { name2Serial.Add(args.Service.Name, serial); serial2IP.Add(serial, ip); Console.WriteLine("Found Aroma Shooter: serial = {0}, IP = {1}.", serial, ip); } } } } }
private static void OnServiceResolved(object o, ServiceResolvedEventArgs args) { IResolvableService service = o as IResolvableService; Console.Write("*** Resolved name = '{0}', port = '{1}', interface = '{2}'", service.FullName, service.Port, service.NetworkInterface); foreach (System.Net.IPAddress j in service.HostEntry.AddressList) { Console.Write("host = '{0}'", j); } ITxtRecord record = service.TxtRecord; int record_count = record != null ? record.Count : 0; if (record_count > 0) { Console.Write(", TXT Record = ["); for (int i = 0, n = record.Count; i < n; i++) { TxtRecordItem item = record.GetItemAt(i); Console.Write("{0} = '{1}'", item.Key, item.ValueString); if (i < n - 1) { Console.Write(", "); } } Console.WriteLine("]"); } else { Console.WriteLine(""); } }
public void Remove(string key) { TxtRecordItem item = Find(key); if (item != null) { records.Remove(item); } }
public bool MoveNext() { if(index < 0 || index >= record.Count) { return false; } current_item = record.GetItemAt(index++); return current_item != null; }
public bool MoveNext() { if (index < 0 || index >= record.Count) { return(false); } current_item = record.GetItemAt(index++); return(current_item != null); }
private void OnServiceResolved(object o, ServiceResolvedEventArgs args) { IResolvableService service = o as IResolvableService; if (service == null) { return; } Log.DebugFormat("Resolved RAOP service at {0}", service.HostEntry.AddressList[0]); ITxtRecord record = service.TxtRecord; string version = String.Empty; int sample_size = 16, sample_rate = 44100, channels = 2; for (int i = 0, n = record.Count; i < n; i++) { TxtRecordItem item = record.GetItemAt(i); switch (item.Key) { case "vs": version = item.ValueString; break; case "ss": sample_size = Convert.ToInt32(item.ValueString); break; case "sr": sample_rate = Convert.ToInt32(item.ValueString); break; case "ch": channels = Convert.ToInt32(item.ValueString); break; } } lock (speakers) { // TODO: better Name speakers.Add(new RemoteSpeaker(service.HostEntry.HostName, service.HostEntry.AddressList[0], service.Port, version, sample_rate, sample_size, channels)); } EventHandler handler = SpeakersChanged; if (handler != null) { handler(this, EventArgs.Empty); } }
public ActionResult <TxtRecordItem> DeleteTxtRecord(TxtRecordItem item) { var result = _dns.DeleteTxtRecord(item); if (result.Success) { return(Ok(item)); } else { return(NotFound(item)); } }
public ApiResult AddTxtRecord(TxtRecordItem item) { var result = _provider.UpdateTxtRecord(item.Zone, item.Hostname, item.DescriptiveText); if (result.Success) { return(new ApiResult { Success = true }); } else { return(new ApiResult { Success = false }); } }
public void Add(TxtRecordItem item) { if(handle == IntPtr.Zero) { throw new InvalidOperationException("This TXT Record is read only"); } string key = item.Key; if(key[key.Length - 1] != '\0') { key += "\0"; } ServiceError error = Native.TXTRecordSetValue(handle, encoding.GetBytes(key + "\0"), (sbyte)item.ValueRaw.Length, item.ValueRaw); if(error != ServiceError.NoError) { throw new ServiceErrorException(error); } }
public void Add(TxtRecordItem item) { if(handle == IntPtr.Zero) { Log.To.Discovery.E(Tag, "Attempt to call Add() on a readonly object, throwing..."); throw new InvalidOperationException("This TXT Record is read only"); } string key = item.Key; if(key[key.Length - 1] != '\0') { key += "\0"; } ServiceError error = Native.TXTRecordSetValue(handle, encoding.GetBytes(key + "\0"), (sbyte)item.ValueRaw.Length, item.ValueRaw); if(error != ServiceError.NoError) { Log.To.Discovery.E(Tag, "Got error in TXTRecordSetValue ({0}), throwing...", error); throw new ServiceErrorException(error); } }
public void Register() { lock (eg_mutex) { if (entry_group != null) { entry_group.Reset(); } else { entry_group = new AV.EntryGroup(client); entry_group.StateChanged += OnEntryGroupStateChanged; } try { string [] rendered_txt_record = null; if (txt_record != null && txt_record.Count > 0) { rendered_txt_record = new string[txt_record.Count]; for (int i = 0; i < txt_record.Count; i++) { TxtRecordItem item = txt_record.GetItemAt(i); rendered_txt_record[i] = String.Format("{0}={1}", item.Key, item.ValueString); } } entry_group.AddService(name, regtype, reply_domain, (ushort)port, rendered_txt_record); entry_group.Commit(); } catch (AV.ClientException e) { if (e.ErrorCode == AV.ErrorCode.Collision && OnResponse(e.ErrorCode)) { return; } else { throw e; } } } }
private void OnServiceResolved(object o, ServiceResolvedEventArgs args) { string path = ""; IResolvableService service = o as IResolvableService; ITxtRecord record = service.TxtRecord; int record_count = record != null ? record.Count : 0; if (record_count > 0) { for (int i = 0, n = record.Count; i < n; i++) { TxtRecordItem item = record.GetItemAt(i); if (item.Key.CompareTo("path") == 0) { path = item.ValueString; } } } url = "http://" + service.HostEntry.AddressList[0] + ":" + service.Port + "/" + path; register(); }
public void Add(TxtRecordItem item) { if (handle == IntPtr.Zero) { throw new InvalidOperationException("This TXT Record is read only"); } string key = item.Key; if (key[key.Length - 1] != '\0') { key += "\0"; } ServiceError error = Native.TXTRecordSetValue(handle, encoding.GetBytes(key + "\0"), (sbyte)item.ValueRaw.Length, item.ValueRaw); if (error != ServiceError.NoError) { throw new ServiceErrorException(error); } }
public void Add(TxtRecordItem item) { if (handle == IntPtr.Zero) { Log.To.Discovery.E(Tag, "Attempt to call Add() on a readonly object, throwing..."); throw new InvalidOperationException("This TXT Record is read only"); } string key = item.Key; if (key[key.Length - 1] != '\0') { key += "\0"; } ServiceError error = Native.TXTRecordSetValue(handle, encoding.GetBytes(key + "\0"), (sbyte)item.ValueRaw.Length, item.ValueRaw); if (error != ServiceError.NoError) { Log.To.Discovery.E(Tag, "Got error in TXTRecordSetValue ({0}), throwing...", error); throw new ServiceErrorException(error); } }
public void Reset() { index = 0; current_item = null; }
public void Add(TxtRecordItem item) { records.Add(item); }
private void button1_Click(object sender, EventArgs e) { ServiceBrowser browser = new ServiceBrowser(); // // Configure the code that will be called back when the information // becomes available // browser.ServiceAdded += delegate(object o, ServiceBrowseEventArgs argss) { argss.Service.Resolved += delegate(object oo, ServiceResolvedEventArgs argsss) { IResolvableService s = (IResolvableService)argsss.Service; DataRow new_device = device_info.NewRow(); new_device["Name"] = s.Name; new_device["IP"] = s.HostEntry.AddressList[0]; new_device["Port"] = s.Port; new_device["Attached Sensors/Actuators"] = s.TxtRecord.Count; bool contains = device_info.AsEnumerable().Any(row => s.Name == row.Field <String>("Name")); if (!contains) { device_info.Rows.Add(new_device); DataTable device_components = new DataTable(s.Name); device_components.Columns.Add("Type", typeof(string)); device_components.Columns.Add("OSC Address", typeof(string)); device_components.Columns.Add("Range", typeof(string)); for (int i = 0; i < s.TxtRecord.Count; i++) { DataRow new_device_component = device_components.NewRow(); TxtRecordItem Component = s.TxtRecord.BaseRecord.GetItemAt(i); new_device_component["Type"] = Component.Key; String[] ComponentList = Component.ValueString.Split(':'); new_device_component["OSC Address"] = ComponentList[0]; new_device_component["Range"] = ComponentList[1]; device_components.Rows.Add(new_device_component); } devices.Tables.Add(device_components); } }; argss.Service.Resolve(); }; browser.Browse("_http._udp.", "local"); // Triggering the discovery request dataGridView1.DataSource = device_info; // Binding DataGridView with main table dataGridView1.Columns[0].Width = 220; dataGridView1.Columns[1].Width = 140; dataGridView1.Columns[2].Width = 100; dataGridView1.Columns[3].Width = 250; // // Adding Checkbox column in table // DataGridViewCheckBoxColumn chk = new DataGridViewCheckBoxColumn(); chk.HeaderText = "Select"; chk.Name = "Checkbox"; chk.Width = dataGridView1.Width - dataGridView1.Columns[0].Width - dataGridView1.Columns[1].Width - dataGridView1.Columns[2].Width - dataGridView1.Columns[3].Width - 45; dataGridView1.Columns.Add(chk); }