diff options
Diffstat (limited to 'Emby.Server.Implementations/IO/SharpCifs/Util/Sharpen/SynchronizedList.cs')
| -rw-r--r-- | Emby.Server.Implementations/IO/SharpCifs/Util/Sharpen/SynchronizedList.cs | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/Emby.Server.Implementations/IO/SharpCifs/Util/Sharpen/SynchronizedList.cs b/Emby.Server.Implementations/IO/SharpCifs/Util/Sharpen/SynchronizedList.cs new file mode 100644 index 000000000..c105a8bab --- /dev/null +++ b/Emby.Server.Implementations/IO/SharpCifs/Util/Sharpen/SynchronizedList.cs @@ -0,0 +1,106 @@ +using System.Collections; +using System.Collections.Generic; + +namespace SharpCifs.Util.Sharpen +{ + internal class SynchronizedList<T> : IList<T> + { + private IList<T> _list; + + public SynchronizedList (IList<T> list) + { + this._list = list; + } + + public int IndexOf (T item) + { + lock (_list) { + return _list.IndexOf (item); + } + } + + public void Insert (int index, T item) + { + lock (_list) { + _list.Insert (index, item); + } + } + + public void RemoveAt (int index) + { + lock (_list) { + _list.RemoveAt (index); + } + } + + void ICollection<T>.Add (T item) + { + lock (_list) { + _list.Add (item); + } + } + + void ICollection<T>.Clear () + { + lock (_list) { + _list.Clear (); + } + } + + bool ICollection<T>.Contains (T item) + { + lock (_list) { + return _list.Contains (item); + } + } + + void ICollection<T>.CopyTo (T[] array, int arrayIndex) + { + lock (_list) { + _list.CopyTo (array, arrayIndex); + } + } + + bool ICollection<T>.Remove (T item) + { + lock (_list) { + return _list.Remove (item); + } + } + + IEnumerator<T> IEnumerable<T>.GetEnumerator () + { + return _list.GetEnumerator (); + } + + IEnumerator IEnumerable.GetEnumerator () + { + return _list.GetEnumerator (); + } + + public T this[int index] { + get { + lock (_list) { + return _list[index]; + } + } + set { + lock (_list) { + _list[index] = value; + } + } + } + + int ICollection<T>.Count { + get { + lock (_list) { + return _list.Count; + } + } + } + + bool ICollection<T>.IsReadOnly { + get { return _list.IsReadOnly; } + } + } +} |
