aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations/IO/SharpCifs/Util/Sharpen/SynchronizedList.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2017-08-16 02:43:41 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2017-08-16 02:43:41 -0400
commitbfcd1b520fd79b893e721ba916ae5e1656407d2f (patch)
tree6a05119800484435fb384da25c6390054a27c3c3 /Emby.Server.Implementations/IO/SharpCifs/Util/Sharpen/SynchronizedList.cs
parente3531534b85aeaaa3e4aaf462d5e77ea142dc762 (diff)
merge common implementations and server implementations
Diffstat (limited to 'Emby.Server.Implementations/IO/SharpCifs/Util/Sharpen/SynchronizedList.cs')
-rw-r--r--Emby.Server.Implementations/IO/SharpCifs/Util/Sharpen/SynchronizedList.cs106
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; }
+ }
+ }
+}