public ObservableMulticastGroupSettings(MulticastGroupSettings settings) { _settings = settings; Qualifiers = new ObservableCollection <ObservableQualifierSettings>(); foreach (var q in _settings.Qualifier) { var observableQ = new ObservableQualifierSettings(q); Qualifiers.Add(observableQ); } Qualifiers.CollectionChanged += _qualifiers_CollectionChanged; }
private void AddSource(object obj) { var newSource = new MulticastGroupSettings() { Name = "Name", GroupAdreass = "::1", GroupPort = 0, Qualifier = new List <QualifierSettings>() }; Settings.Add(new ObservableMulticastGroupSettings(newSource)); }
public object GetSettings() { var settings = new List <MulticastGroupSettings>(); foreach (var source in Settings) { var s = new MulticastGroupSettings() { Name = source.Name, GroupAdreass = source.GroupAdreass, GroupPort = source.Port, Qualifier = (from q in source.Qualifiers select new QualifierSettings() { SourceIp = q.SourceIp, SourcePort = q.Port, Discard = q.Discard }).ToList() }; settings.Add(s); } return(settings); }
public MulticastReceiver(MulticastGroupSettings settings) { _mcastGroup = IPAddress.Parse(settings.GroupAdreass); _localPort = settings.GroupPort; _qualifiers = new List <ISourceQualifier>(); foreach (var q in settings.Qualifier) { var qOption = QualifierOption.Accept; if (q.Discard) { qOption = QualifierOption.Discard; } IPAddress qIp = null; if (q.SourceIp != string.Empty) { qIp = IPAddress.Parse(q.SourceIp); } var qualifier = new SourceQualifier(qIp, q.SourcePort, qOption); _qualifiers.Add(qualifier); } }