aboutsummaryrefslogtreecommitdiff
path: root/SocketHttpListener/Net/HttpListenerPrefixCollection.cs
diff options
context:
space:
mode:
Diffstat (limited to 'SocketHttpListener/Net/HttpListenerPrefixCollection.cs')
-rw-r--r--SocketHttpListener/Net/HttpListenerPrefixCollection.cs79
1 files changed, 54 insertions, 25 deletions
diff --git a/SocketHttpListener/Net/HttpListenerPrefixCollection.cs b/SocketHttpListener/Net/HttpListenerPrefixCollection.cs
index 97dc6797c..400a1adb6 100644
--- a/SocketHttpListener/Net/HttpListenerPrefixCollection.cs
+++ b/SocketHttpListener/Net/HttpListenerPrefixCollection.cs
@@ -7,18 +7,18 @@ namespace SocketHttpListener.Net
{
public class HttpListenerPrefixCollection : ICollection<string>, IEnumerable<string>, IEnumerable
{
- List<string> prefixes = new List<string>();
- HttpListener listener;
+ private List<string> _prefixes = new List<string>();
+ private HttpListener _listener;
private ILogger _logger;
internal HttpListenerPrefixCollection(ILogger logger, HttpListener listener)
{
_logger = logger;
- this.listener = listener;
+ _listener = listener;
}
- public int Count => prefixes.Count;
+ public int Count => _prefixes.Count;
public bool IsReadOnly => false;
@@ -26,61 +26,90 @@ namespace SocketHttpListener.Net
public void Add(string uriPrefix)
{
- listener.CheckDisposed();
+ _listener.CheckDisposed();
//ListenerPrefix.CheckUri(uriPrefix);
- if (prefixes.Contains(uriPrefix))
+ if (_prefixes.Contains(uriPrefix))
+ {
return;
+ }
- prefixes.Add(uriPrefix);
- if (listener.IsListening)
- HttpEndPointManager.AddPrefix(_logger, uriPrefix, listener);
+ _prefixes.Add(uriPrefix);
+ if (_listener.IsListening)
+ {
+ HttpEndPointManager.AddPrefix(_logger, uriPrefix, _listener);
+ }
+ }
+
+ public void AddRange(IEnumerable<string> uriPrefixes)
+ {
+ _listener.CheckDisposed();
+
+ foreach (var uriPrefix in uriPrefixes)
+ {
+ if (_prefixes.Contains(uriPrefix))
+ {
+ continue;
+ }
+
+ _prefixes.Add(uriPrefix);
+ if (_listener.IsListening)
+ {
+ HttpEndPointManager.AddPrefix(_logger, uriPrefix, _listener);
+ }
+ }
}
public void Clear()
{
- listener.CheckDisposed();
- prefixes.Clear();
- if (listener.IsListening)
- HttpEndPointManager.RemoveListener(_logger, listener);
+ _listener.CheckDisposed();
+ _prefixes.Clear();
+ if (_listener.IsListening)
+ {
+ HttpEndPointManager.RemoveListener(_logger, _listener);
+ }
}
public bool Contains(string uriPrefix)
{
- listener.CheckDisposed();
- return prefixes.Contains(uriPrefix);
+ _listener.CheckDisposed();
+ return _prefixes.Contains(uriPrefix);
}
public void CopyTo(string[] array, int offset)
{
- listener.CheckDisposed();
- prefixes.CopyTo(array, offset);
+ _listener.CheckDisposed();
+ _prefixes.CopyTo(array, offset);
}
public void CopyTo(Array array, int offset)
{
- listener.CheckDisposed();
- ((ICollection)prefixes).CopyTo(array, offset);
+ _listener.CheckDisposed();
+ ((ICollection)_prefixes).CopyTo(array, offset);
}
public IEnumerator<string> GetEnumerator()
{
- return prefixes.GetEnumerator();
+ return _prefixes.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
- return prefixes.GetEnumerator();
+ return _prefixes.GetEnumerator();
}
public bool Remove(string uriPrefix)
{
- listener.CheckDisposed();
+ _listener.CheckDisposed();
if (uriPrefix == null)
+ {
throw new ArgumentNullException(nameof(uriPrefix));
+ }
- bool result = prefixes.Remove(uriPrefix);
- if (result && listener.IsListening)
- HttpEndPointManager.RemovePrefix(_logger, uriPrefix, listener);
+ bool result = _prefixes.Remove(uriPrefix);
+ if (result && _listener.IsListening)
+ {
+ HttpEndPointManager.RemovePrefix(_logger, uriPrefix, _listener);
+ }
return result;
}