aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations/IO/SharpCifs/Util/Sharpen/ConcurrentHashMap.cs
diff options
context:
space:
mode:
authorVasily <JustAMan@users.noreply.github.com>2019-01-05 03:04:54 +0300
committerGitHub <noreply@github.com>2019-01-05 03:04:54 +0300
commitf93cd97f9b66939908f95b601e2cbffa2e9eb63c (patch)
treeb9adbaa036ec21843c84a8639edc0e481d3f5f83 /Emby.Server.Implementations/IO/SharpCifs/Util/Sharpen/ConcurrentHashMap.cs
parenta997bb609fce26e169443d05c48f239a028bb749 (diff)
parent6a8b94b0c795b42aa894136445996df4557e8387 (diff)
Merge pull request #393 from Bond-009/removesmb
Remove support for opening files via SMB without mounting the share. This doesn't mean you can't use a SMB share to host your files for Jellyfin. You will just have to mount the share using OS-level mechanisms.
Diffstat (limited to 'Emby.Server.Implementations/IO/SharpCifs/Util/Sharpen/ConcurrentHashMap.cs')
-rw-r--r--Emby.Server.Implementations/IO/SharpCifs/Util/Sharpen/ConcurrentHashMap.cs122
1 files changed, 0 insertions, 122 deletions
diff --git a/Emby.Server.Implementations/IO/SharpCifs/Util/Sharpen/ConcurrentHashMap.cs b/Emby.Server.Implementations/IO/SharpCifs/Util/Sharpen/ConcurrentHashMap.cs
deleted file mode 100644
index 7f464ad36..000000000
--- a/Emby.Server.Implementations/IO/SharpCifs/Util/Sharpen/ConcurrentHashMap.cs
+++ /dev/null
@@ -1,122 +0,0 @@
-using System.Collections.Generic;
-
-namespace SharpCifs.Util.Sharpen
-{
- internal class ConcurrentHashMap<T, TU> : AbstractMap<T, TU>, IConcurrentMap<T, TU>
- {
- private Dictionary<T, TU> _table;
-
- public ConcurrentHashMap ()
- {
- _table = new Dictionary<T, TU> ();
- }
-
- public ConcurrentHashMap (int initialCapacity, float loadFactor, int concurrencyLevel)
- {
- _table = new Dictionary<T, TU> (initialCapacity);
- }
-
- public override void Clear ()
- {
- lock (_table) {
- _table = new Dictionary<T, TU> ();
- }
- }
-
- public override bool ContainsKey (object name)
- {
- return _table.ContainsKey ((T)name);
- }
-
- public override ICollection<KeyValuePair<T, TU>> EntrySet ()
- {
- return this;
- }
-
- public override TU Get (object key)
- {
- TU local;
- _table.TryGetValue ((T)key, out local);
- return local;
- }
-
- protected override IEnumerator<KeyValuePair<T, TU>> InternalGetEnumerator ()
- {
- return _table.GetEnumerator ();
- }
-
- public override bool IsEmpty ()
- {
- return _table.Count == 0;
- }
-
- public override TU Put (T key, TU value)
- {
- lock (_table) {
- TU old = Get (key);
- Dictionary<T, TU> newTable = new Dictionary<T, TU> (_table);
- newTable[key] = value;
- _table = newTable;
- return old;
- }
- }
-
- public TU PutIfAbsent (T key, TU value)
- {
- lock (_table) {
- if (!ContainsKey (key)) {
- Dictionary<T, TU> newTable = new Dictionary<T, TU> (_table);
- newTable[key] = value;
- _table = newTable;
- return value;
- }
- return Get (key);
- }
- }
-
- public override TU Remove (object key)
- {
- lock (_table) {
- TU old = Get ((T)key);
- Dictionary<T, TU> newTable = new Dictionary<T, TU> (_table);
- newTable.Remove ((T)key);
- _table = newTable;
- return old;
- }
- }
-
- public bool Remove (object key, object value)
- {
- lock (_table) {
- if (ContainsKey (key) && value.Equals (Get (key))) {
- Dictionary<T, TU> newTable = new Dictionary<T, TU> (_table);
- newTable.Remove ((T)key);
- _table = newTable;
- return true;
- }
- return false;
- }
- }
-
- public bool Replace (T key, TU oldValue, TU newValue)
- {
- lock (_table) {
- if (ContainsKey (key) && oldValue.Equals (Get (key))) {
- Dictionary<T, TU> newTable = new Dictionary<T, TU> (_table);
- newTable[key] = newValue;
- _table = newTable;
- return true;
- }
- return false;
- }
- }
-
- public override IEnumerable<T> Keys {
- get { return _table.Keys; }
- }
-
- public override IEnumerable<TU> Values {
- get { return _table.Values; }
- }
- }
-}