|
@@ -6,17 +6,17 @@ using System.Linq; |
|
|
|
|
|
|
|
|
namespace Discord.Collections |
|
|
namespace Discord.Collections |
|
|
{ |
|
|
{ |
|
|
public abstract class AsyncCollection<TValue> : IEnumerable<TValue> |
|
|
|
|
|
|
|
|
internal abstract class AsyncCollection<TValue> : IEnumerable<TValue> |
|
|
where TValue : class |
|
|
where TValue : class |
|
|
{ |
|
|
{ |
|
|
private readonly object _writerLock; |
|
|
private readonly object _writerLock; |
|
|
|
|
|
|
|
|
internal class CollectionItemEventArgs : EventArgs |
|
|
|
|
|
|
|
|
public class CollectionItemEventArgs : EventArgs |
|
|
{ |
|
|
{ |
|
|
public TValue Item { get; } |
|
|
public TValue Item { get; } |
|
|
public CollectionItemEventArgs(TValue item) { Item = item; } |
|
|
public CollectionItemEventArgs(TValue item) { Item = item; } |
|
|
} |
|
|
} |
|
|
internal class CollectionItemRemappedEventArgs : EventArgs |
|
|
|
|
|
|
|
|
public class CollectionItemRemappedEventArgs : EventArgs |
|
|
{ |
|
|
{ |
|
|
public TValue Item { get; } |
|
|
public TValue Item { get; } |
|
|
public string OldId { get; } |
|
|
public string OldId { get; } |
|
@@ -24,26 +24,26 @@ namespace Discord.Collections |
|
|
public CollectionItemRemappedEventArgs(TValue item, string oldId, string newId) { Item = item; OldId = oldId; NewId = newId; } |
|
|
public CollectionItemRemappedEventArgs(TValue item, string oldId, string newId) { Item = item; OldId = oldId; NewId = newId; } |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
internal EventHandler<CollectionItemEventArgs> ItemCreated; |
|
|
|
|
|
|
|
|
public EventHandler<CollectionItemEventArgs> ItemCreated; |
|
|
private void RaiseItemCreated(TValue item) |
|
|
private void RaiseItemCreated(TValue item) |
|
|
{ |
|
|
{ |
|
|
if (ItemCreated != null) |
|
|
if (ItemCreated != null) |
|
|
ItemCreated(this, new CollectionItemEventArgs(item)); |
|
|
ItemCreated(this, new CollectionItemEventArgs(item)); |
|
|
} |
|
|
} |
|
|
internal EventHandler<CollectionItemEventArgs> ItemDestroyed; |
|
|
|
|
|
|
|
|
public EventHandler<CollectionItemEventArgs> ItemDestroyed; |
|
|
private void RaiseItemDestroyed(TValue item) |
|
|
private void RaiseItemDestroyed(TValue item) |
|
|
{ |
|
|
{ |
|
|
if (ItemDestroyed != null) |
|
|
if (ItemDestroyed != null) |
|
|
ItemDestroyed(this, new CollectionItemEventArgs(item)); |
|
|
ItemDestroyed(this, new CollectionItemEventArgs(item)); |
|
|
} |
|
|
} |
|
|
internal EventHandler<CollectionItemRemappedEventArgs> ItemRemapped; |
|
|
|
|
|
|
|
|
public EventHandler<CollectionItemRemappedEventArgs> ItemRemapped; |
|
|
private void RaiseItemRemapped(TValue item, string oldId, string newId) |
|
|
private void RaiseItemRemapped(TValue item, string oldId, string newId) |
|
|
{ |
|
|
{ |
|
|
if (ItemRemapped != null) |
|
|
if (ItemRemapped != null) |
|
|
ItemRemapped(this, new CollectionItemRemappedEventArgs(item, oldId, newId)); |
|
|
ItemRemapped(this, new CollectionItemRemappedEventArgs(item, oldId, newId)); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
internal EventHandler Cleared; |
|
|
|
|
|
|
|
|
public EventHandler Cleared; |
|
|
private void RaiseCleared() |
|
|
private void RaiseCleared() |
|
|
{ |
|
|
{ |
|
|
if (Cleared != null) |
|
|
if (Cleared != null) |
|
@@ -121,7 +121,7 @@ namespace Discord.Collections |
|
|
} |
|
|
} |
|
|
return null; |
|
|
return null; |
|
|
} |
|
|
} |
|
|
protected internal void Clear() |
|
|
|
|
|
|
|
|
public void Clear() |
|
|
{ |
|
|
{ |
|
|
lock (_writerLock) |
|
|
lock (_writerLock) |
|
|
{ |
|
|
{ |
|
|