public void Add(PrefixEndpointAddressMessageFilter filter, TFilterData data) { if (filter == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("filter"); } this.filters.Add(filter, data); // Create the candidate byte[] mask = BuildMask(filter.HeaderLookup); Candidate can = new Candidate(filter, data, mask, filter.HeaderLookup); this.candidates.Add(filter, can); #pragma warning suppress 56506 // [....], PrefixEndpointAddressMessageFilter.Address can never be null Uri soapToAddress = filter.Address.Uri; CandidateSet cset; if (!TryMatchCandidateSet(soapToAddress, filter.IncludeHostNameInComparison, out cset)) { cset = new CandidateSet(); GetAddressTable(filter.IncludeHostNameInComparison).RegisterUri(soapToAddress, GetComparisonMode(filter.IncludeHostNameInComparison), cset); } cset.candidates.Add(can); IncrementQNameCount(cset, filter.Address); }
public bool Remove(PrefixEndpointAddressMessageFilter filter) { if (filter == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("filter"); } if (!base.filters.Remove(filter)) { return(false); } EndpointAddressMessageFilterTable <TFilterData> .Candidate item = base.candidates[filter]; Uri to = filter.Address.Uri; EndpointAddressMessageFilterTable <TFilterData> .CandidateSet cset = null; if (this.TryMatchCandidateSet(to, filter.IncludeHostNameInComparison, out cset)) { if (cset.candidates.Count == 1) { this.GetAddressTable(filter.IncludeHostNameInComparison).UnregisterUri(to, this.GetComparisonMode(filter.IncludeHostNameInComparison)); } else { base.DecrementQNameCount(cset, filter.Address); cset.candidates.Remove(item); } } base.candidates.Remove(filter); base.RebuildMasks(); return(true); }
public override bool Remove(MessageFilter filter) { if (filter == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("filter"); } PrefixEndpointAddressMessageFilter filter2 = filter as PrefixEndpointAddressMessageFilter; return((filter2 != null) && this.Remove(filter2)); }
public override bool Remove(MessageFilter filter) { if (filter == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("filter"); } PrefixEndpointAddressMessageFilter pFilter = filter as PrefixEndpointAddressMessageFilter; if (pFilter != null) { return(Remove(pFilter)); } return(false); }
public void Add(PrefixEndpointAddressMessageFilter filter, TFilterData data) { EndpointAddressMessageFilterTable <TFilterData> .CandidateSet set; if (filter == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("filter"); } base.filters.Add(filter, data); byte[] mask = base.BuildMask(filter.HeaderLookup); EndpointAddressMessageFilterTable <TFilterData> .Candidate candidate = new EndpointAddressMessageFilterTable <TFilterData> .Candidate(filter, data, mask, filter.HeaderLookup); base.candidates.Add(filter, candidate); Uri to = filter.Address.Uri; if (!this.TryMatchCandidateSet(to, filter.IncludeHostNameInComparison, out set)) { set = new EndpointAddressMessageFilterTable <TFilterData> .CandidateSet(); this.GetAddressTable(filter.IncludeHostNameInComparison).RegisterUri(to, this.GetComparisonMode(filter.IncludeHostNameInComparison), set); } set.candidates.Add(candidate); base.IncrementQNameCount(set, filter.Address); }
public bool Remove(PrefixEndpointAddressMessageFilter filter) { if (filter == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("filter"); } if (!this.filters.Remove(filter)) { return(false); } Candidate can = this.candidates[filter]; #pragma warning suppress 56506 // [....], PrefixEndpointAddressMessageFilter.Address can never be null Uri soapToAddress = filter.Address.Uri; CandidateSet cset = null; if (TryMatchCandidateSet(soapToAddress, filter.IncludeHostNameInComparison, out cset)) { if (cset.candidates.Count == 1) { GetAddressTable(filter.IncludeHostNameInComparison).UnregisterUri(soapToAddress, GetComparisonMode(filter.IncludeHostNameInComparison)); } else { DecrementQNameCount(cset, filter.Address); // Remove Candidate cset.candidates.Remove(can); } } this.candidates.Remove(filter); RebuildMasks(); return(true); }